C - Bài 28: Con trỏ và mảng.

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024

Комментарии • 89

  • @haovu2763
    @haovu2763 Год назад

    anh này dạy hay vl thề

  • @thanhtranndang
    @thanhtranndang Год назад +1

    int arr[] = { 1,2,3,4,5 };
    int* ptr = arr;
    int i;
    for (ptr = arr; ptr < arr + 5; ptr++ )
    {
    printf("%d ", *(ptr));
    }
    Em tham khảo 1 số video khác thì có thể làm theo cách này ạ
    ptr khởi tạo với giá trị ban đầu là địa chỉ của phần tử đầu tiên của mảng arr, và ptr sẽ chay khi giá trị của ptr vẫn nhỏ hơn địa chỉ cuối cùng của mảng arr

  • @bluesthe1760
    @bluesthe1760 5 лет назад +1

    chỉ dẫn rất hay, lời rõ, đẹp, cám ơn bạn rất nhiều

    •  5 лет назад

      thanks

  • @kdaalloutuchihaevelynn7035
    @kdaalloutuchihaevelynn7035 11 месяцев назад

    for (; ptr

  • @oanovan9199
    @oanovan9199 Год назад

    muốn học khóa học thì kiểu gì ạ

    •  Год назад

      E vào trang https:braniumacademy.net xem nhé

    • @oanovan9199
      @oanovan9199 Год назад

      @ anh ơi ko có bài tập ạ
      em thấy có lý thuyết thôi ạ

  • @long3850
    @long3850 4 года назад +1

    bài này hiểu hơn hẳn rồi a ạ :D

    •  4 года назад

      oke nhé

  • @tranquocbao4056
    @tranquocbao4056 3 года назад

    sao thầy mình dạy con trỏ là %p nhỉ?

    •  3 года назад

      %p, %x đều ok. chi tiết tham khảo ví dụ: www.tutorialspoint.com/difference-between-p-and-x-in-c-cplusplus

  • @hoanle2320
    @hoanle2320 2 года назад +1

    mỗi máy thì địa chỉ có thể khác nhau hay sao ạ

    •  2 года назад

      Đúng r e

  • @learningisfun5353
    @learningisfun5353 4 года назад

    anh ơi anh làm thế nào để bôi đen rồi bấm cái là nó ra một loạt các dấu // vậy ạ

    •  4 года назад

      Trần Ngọc Dự ctrl space

    • @learningisfun5353
      @learningisfun5353 4 года назад

      @ thanks anh

  • @24.nguyenhuytan90
    @24.nguyenhuytan90 3 года назад +1

    2:21 sao đoạn khởi tạo như clip trc thì phải khai báo là int *ptr = &arr. Sao bh lại không có dấu ''và'' nữa vậy a?

    •  3 года назад +2

      Do mảng bản chất là con trỏ nên e k có & trước arr

  • @laitranthevinh
    @laitranthevinh 3 года назад

    Vì sao khi scanf();một mảng kí tự nào đó ta lại không cần kí tự &trước tên biến vậy mọi người?

    •  3 года назад

      Vì tên mảng là con trỏ nhé e

    • @laitranthevinh
      @laitranthevinh 3 года назад

      @ vì sao con trỏ lại không có & vậy thầy?

    •  3 года назад

      Vì bản thân con trỏ chứa địa chỉ rồi e

    • @laitranthevinh
      @laitranthevinh 3 года назад

      À vâng, thầy làm mấy cái hàm memchr();. . . trong thư viện string.h đi. Em xem trên mạng chả hiểu người ta nói gì

  • @NAMNGUYEN-gc1zh
    @NAMNGUYEN-gc1zh 5 лет назад +1

    Anh cho em hỏi là bôi đen sau bấm cái gì để toàn bộ phần bôi đen trở thành chú thích ( comment ) ạ

    •  5 лет назад +1

      Ctrl /

  • @aitruong7468
    @aitruong7468 3 года назад

    anh ơi cho em hỏi nếu em học hết C rồi học kháo cấu trúc dữ liệu và giải thuật rồi em sẽ học những gì tiếp theo ạ

    • @aitruong7468
      @aitruong7468 3 года назад

      em muốn theo hướng AI a ạ:V

  • @buithanhlam3726
    @buithanhlam3726 5 лет назад +2

    Anh ơi, theo em được biết thì địa chỉ của các phần tử trong mảng cách nhau 1 khoảng đúng bằng kích thước của kiểu dữ liệu đó, như trong video thì các địa chỉ của a[0], a[1]... cách nhau 4 đơn vị. Vậy sao *(ptr+i) vẫn đúng ạ, em tưởng là *(ptr+i*sizeof(int)) chứ ạ? Cảm ơn anh.

    •  5 лет назад

      mặc đinh nó coi ptr + i trong đó ptr là con trỏ thì kết quả sẽ trỏ tới vị trí các ptr cũ i ô nhớ

  • @maithivan5878
    @maithivan5878 5 лет назад +1

    Đề bài là viết các hàm:
    -nhập x, kiểm tra trong mảng có phần tử nào bằng x thì gán bằng 0
    -nhập k, xóa phần tử ở vị trí thứ k trong mảng.
    Em hỏi là làm sao để hàm xoa_mang() của em xoá mảng ban đầu em nhập.
    Vì em chạy hàm ktra_mang() trước nên nó lấy luôn cái mảng sau khi sửa đấy để xóa,em muốn lấy cái mảng ban đầu nhập để xóa ý.
    GIÚP E VỚI,EM CẢM ƠN NHIỀU Ạ
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #include
    #include
    int nhapN(){
    int n;
    do{
    printf("nhap n=");
    scanf("%d",&n);
    if(n30){
    printf("nhap sai, nhap lai n=");
    scanf("%d",&n);
    }
    }while(n30);
    return n;
    }
    void nhapmangB(int B[],int n){
    for(int i=0;i

  • @nguyenthanhnam9813
    @nguyenthanhnam9813 4 года назад

    liệu có ép kiểu dữ liệu cho con trỏ đc không ạ ?

    •  4 года назад

      có, e tìm hiểu con trỏ void

  • @_LeMinhQuy-mf7hb
    @_LeMinhQuy-mf7hb 4 года назад

    cho mk hỏi là khi chạy chương trình thì sao arr = &arr z ad???

    •  4 года назад

      bản chất của mảng là con trỏ nên nó cho phép như vậy nhé

    • @_LeMinhQuy-mf7hb
      @_LeMinhQuy-mf7hb 4 года назад

      @ ad giải thích rõ hơn đc ko ???

  • @NgyenucKhaiHE
    @NgyenucKhaiHE 4 года назад

    Cho em hỏi %5d có tác dụng gì ạ

    •  4 года назад +1

      ruclips.net/video/welAtSfiyok/видео.html

  • @it4.080
    @it4.080 4 года назад

    anh ơi đổi kiểu phần tử char a[i] of array sang kiểu int ntn ạ
    em dùng con trỏ đến lúc đổi nó ko chạy

    •  4 года назад

      int number = arr[i] - '0';

    • @it4.080
      @it4.080 4 года назад

      @ mấy điều này trên trường thây cô ko dạy nhỉ chủ yêu đọc tài liệu à anh

    •  4 года назад

      @@it4.080 không phải mọi thứ e đều có thể học ở trường. Hãy chịu khó google có hết các câu trả lời

    • @it4.080
      @it4.080 4 года назад

      vâng em cảm ơn anh

    •  4 года назад

      @@it4.080 oke

  • @khoanguyentranang1298
    @khoanguyentranang1298 4 года назад

    Anh triệu ơi , anh cho em hỏi dòng 20 tại sao mình *ptr mà còn + i làm gì vậy anh, em hông hiểu mong anh giải thich giúp em , em cảm ơn a trc ạ

    •  4 года назад

      Khoa Nguyễn Trần Đăng nội dung này đang nói về con trỏ và mảng mà

    • @QuocAn-gg5zg
      @QuocAn-gg5zg 4 года назад +3

      Không biết ông còn cần không nhưng theo tôi hiểu thì đó là vì ông cần in ra giá trị ở những ô nhớ kế tiếp, phần ptr + i sẽ làm địa chỉ lấy giá trị tăng lên còn dấu * ở ngoài là để lấy giá trị của ô nhớ đó, vì suốt vòng lặp chỉ có giá trị của i là tăng lên còn của ptr thì không thay đổi nên nó sẽ cho ra kết quả đúng

  • @songchovui1905
    @songchovui1905 4 года назад

    %x là gì vậy ạ

    •  4 года назад

      mew con in giá trị hệ 16

    • @songchovui1905
      @songchovui1905 4 года назад

      @ anh đi làm về trễ hay sao giờ này rep ạ?

    •  4 года назад

      Khi nào rảnh a rep

  • @dungvothe7173
    @dungvothe7173 6 лет назад

    em cảm ơn anh

  • @trinhong1893
    @trinhong1893 3 года назад

    Con trỏ khó nhất trong ngôn ngữ C đúng ko a

  • @gymngocson6480
    @gymngocson6480 4 года назад

    Int 2 byte mà anh?

    •  4 года назад

      tùy hệ điều hành nhé e

    • @Quangnguyen1696
      @Quangnguyen1696 3 года назад

      32 bit thì 2 byte, 64 bit 4 byte

  • @hoangminhtuan4355
    @hoangminhtuan4355 4 года назад

    ptr++ là chuyển ô nhớ này qua ô nhớ liền kề
    ptr++ = ptr +(1*4)
    Thì có nghĩa là 2 đại chỉa liên tiếp cách nhau 4 byte đúng k anh :))

    •  4 года назад

      Đúng vậy

    • @thangduong7179
      @thangduong7179 3 года назад

      @ tại sao chương trình lại dịch ++ thành +4 ạ? Hay nó là con trỏ nên chương trình tự hiểu vậy a?

    •  3 года назад

      @@thangduong7179 mặc định ++ sẽ cộng thêm 1 lượng bằng độ lớn của kiểu dữ liệu của con trỏ

  • @top_1_florentino
    @top_1_florentino 5 лет назад

    Hello

  • @dungvothe7173
    @dungvothe7173 6 лет назад

    ô vuông trước dấu bằng dòng 5 ạ

    •  6 лет назад

      Dũng Võ Thế nó trên bàn phím ấy e.

  • @thaihungnguyen6738
    @thaihungnguyen6738 6 лет назад

    Anh cho em hỏi, anh có tài liệu chi tiết về phần con trỏ và mảng(những cách truy xuất mảng 1 và 2 chiều sử dụng con trỏ theo những cách chuẩn nhất) không ạ? cho em xin với, em tham khảo nhiều blogs, mỗi chổ làm 1 khác nên giờ hơi rối ạ

    •  6 лет назад

      Thai Hung Nguyen a chỉ có tài liệu tiếng Anh thôi

  • @tonngokhong8243
    @tonngokhong8243 6 лет назад +2

    a ơi phút 6:08 a ấn kiểu gì mà nó ra 3 cái dòng đó có 2 gạch ở đầu v ạ

    •  6 лет назад

      ROS Việt Ctrl /

  • @boquangdong
    @boquangdong 6 лет назад

    Anh giải thích cho em cái %x đi ạ. Đoạn ở 2:04 á

    •  6 лет назад +1

      %x là hiển thị địa chỉ dạng hệ cơ số 16

  • @duyta1677
    @duyta1677 4 года назад

    anh cho e hỏi tại sao lúc gán giá trị cho %x trong câu lệnh printf lúc thì anh dùng dấu "&" cho giá trị gán lúc thì lại không thế ạ

    • @danhdaidao4721
      @danhdaidao4721 2 года назад

      Đối với con trỏ và mảng thì không cần dùng dâu & vì giá trị đã được lưu vào địa chỉ của con trỏ hoặc của mảng. Bạn dùng & trước mảng khi mảng đó khai báo giá trị phần tử riêng lẻ trong mảng. VD: bạn có 1 mảng 10 phần tử (arry[10]) khi bạn cần khai báo phần tử thứ 5 arry[5] của mảng 10 phần tử thì bạn sẽ để dấu & trước mảng này: scanf("%d",&arrayy[5]);!!!

  • @tradingfomosapien3651
    @tradingfomosapien3651 7 лет назад

    anh ơi anh có thể làm thêm video về phần cấp phát bộ nhớ động được không ạ .. em chưa hiểu chỗ đó lắm
    cảm ơn anh nhiều... bài giảng anh rất tuyệt

    •  7 лет назад

      huynh viet phải cuối tháng a mới làm được. Hiện a đang phải tạm dừng update

    • @tradingfomosapien3651
      @tradingfomosapien3651 7 лет назад

      ok anh... chúc anh thành công và cho nhiều video hay hơn nữa nhé

    •  7 лет назад

      huynh viet ok e

  • @namtranquang955
    @namtranquang955 5 лет назад +2

    5:29 em thắc mắc là ko cần const cho ptr hả a? hay mỗi vòng for như vậy giá trị nó ko thay đổi vì nó là con trỏ ạ

  • @dungvothe7173
    @dungvothe7173 6 лет назад +1

    Dạ em không biết chỗ nào ạ

    •  6 лет назад

      Dũng Võ Thế cạnh phím P

  • @comvn8085
    @comvn8085 6 лет назад +1

    sao em bam ctll +? lai k boi dc a nhi

    •  6 лет назад

      cụ thể e định làm cái gì? e phải chọn vùng code muốn comment sau đó thao tác trên mới có tác dụng

    • @comvn8085
      @comvn8085 6 лет назад

      Ý e là làm nhưa vậy nhưng thao tác k dc noa ra moi 1 gạch

  • @dungvothe7173
    @dungvothe7173 6 лет назад

    cho em hỏi ơ vuông ở câu 5 chỗ nào ạ em cảm ơn

    •  6 лет назад

      Dũng Võ Thế cụ thể đi b?

  • @thulu8562
    @thulu8562 7 лет назад

    A ơi cho e tại sao lúc in địa chỉ %x lại để ptr mà lúc in giá trị %5d lại để *ptr ạ? Có gì khá nhau ạ?

    •  7 лет назад +2

      theo định nghĩa thì con trỏ là biến mà giá trị chứa trong nó là địa chỉ của biến khác. in cái địa chỉ của biến mà nó chứa thì chỉ cần ptr, còn chui vào địa chỉ đấy(nói cách khác là tìm tới tận chỗ của biến mà con trỏ trỏ tới ) để tìm giá trị thực sự tồn tại/ chứa trong biến đó thì phải dùng *ptr

    • @thulu8562
      @thulu8562 7 лет назад

      +thân triệu e cảm ơn ạ!

  • @ngaxu8141
    @ngaxu8141 7 лет назад

    anh ơi cho em hỏi: *p++ trong chương trình ví dụ kia có ý nghĩa gì ạ?
    em cảm ơn!
    #include
    #include
    void main()
    {
    int a = 6;
    int *p = &a;
    for (; *p < 15; *p++){
    printf("%3d", *p);
    }
    _getch();
    }

    •  7 лет назад

      Dung Van tăng giá trị tại vị trí chứa trong con trỏ lên 1

    • @ngaxu8141
      @ngaxu8141 7 лет назад

      thân triệu em cảm ơn