C - Bài 27: Con trỏ.
Вставка
- Опубліковано 6 лют 2025
- Hướng dẫn lập trình C cho người mới bắt đầu. Học lập trình miễn phí. Học lập trình từ cơ bản tới nâng cao. Con trỏ, pointer, pointer in c programming language. C programming tutorial for the beginner! triệu thân channel-let's grow together!
CNTT toàn phải tự học> là chính>trường dạy như không>1 tuần 6 tiếng chuyên ngành>thì mất 3 4 tiếng lý thuyết> từ học đau đầu> máy có clip của a còn hiểu thêm được.
hungnro1 nguyen chính xác đại học là tự học. Cố gắng lên e ạ. Cuộc sống vốn nó đã như vậy r
a Triệu dạy dễ hiểu quá cảm ơn a
thank you e
Đang mùa dịch mà vào đây học rất hay hiểu lý thuyết nhưng bài tập không biết phải học từ đâu! hy vọng anh sẽ tải thêm bài tập lên!
đây nhé: ua-cam.com/play/PLE1qPKuGSJaDP983KcxEBV_w9_Thz08pc.html
rất dễ hiểu
Cảm ơn anh video anh làm rất bổ ích ạ
Thank you
ông thầy em nói phức tạp vãi
may có anh
Cảm ơn anh
hay lam anh
I hope so
Hay
a dạy rất tốt nhưng e vẫn thấy a nên nói rõ ràng hơn để người nghe có thể nghe đc ạ:)) ,e cảm ơn ạ
Ngày xưa không lo học kỹ cái này giờ thấy hối hận quá. Biết được con trỏ là gì nhưng mà mấy nhà tuyển dụng toàn hỏi tại sao phải dùng con trỏ. Mà em không đưa ra được ví dụ giải thích được con trỏ sao hay hơn biến bình thường anh ơi. Anh có thể làm 1 clip ví dụ đơn giản giải thích sự khác biệt khi dùng biến con trỏ và biến thường được không anh.
tại em thấy anh gán cho a trc sau đó printf a rồi mới gán cho b ạ?
Anh oi. Em có góp ý nhỏ với anh! Sau cùng, ở cuối mỗi video anh đặt ra 1 số câu hỏi để cho người học tự trả lời! Những câu hỏi về kiến thức trọng tâm của video. Để người học có thể hệ thống lại kiến thức đã nghe, cùng vs đó là dễ nhớ hơn. Em cảm ơn!
Oke nhé
tại sao %x với %p có kết quả khác nhau ạ
năm nhất hc môn này mà bỏ bê, bây h mới thấy khổ :(
Ngọc Hoàng Nguyễn t cũng thấy vậy b ạ
cám ơn a ,video rất bổ ích nhưng mong a có thể nói to hơn, e để max volume mà vẫn hơi khó nghe
Sắp tới a sẽ update lại nhé
Anh ơi chỗ:
Printf(" dia hi cua bien a :%x ", &a);
tại sao lại là &a vậy anh. Có thể thay &a thành a được k ạ.
để lấy địa chỉ của một biến a thì e phải để là &a
lấy địa chỉ thì bạn phải dùng &a nhé, còn bạn dùng a thì nó sẽ lấy giá trị hiện thời của a nhé
@@tinhoan1912 hay quá, đang thắc mắc chỗ này
ụa anh, em hiểu là khi xuất thì có dấu * như *ptr thì nó sẽ xuất ra giá trị của a, còn nếu ko có * thì xuất địa chỉ a đúng ko ạ. Với trường hợp gán *ptr= &a ấy ạ.
Đúng r đấy bạn ạ
ANH ơi cho em hỏi con trỏ PTR trỏ đến địa chỉ của biến A thì giá trị trong PTR phải là địa chỉ của A chứ mà anh in vẫn ra giá trị của A. em cảm ơn
Con trỏ chỉ đến địa chỉ của A. Tại địa chỉ đó chứa giá trị của A chứ kh phải giá trị của địa chỉ. Muốn in địa chỉ thì đổi %s hay %d của A thành %p rồi gán địa chỉ &A mới in ra địa chỉ.
Muốn in ra giá trị địa chỉ của con trỏ thì gán & trước con trỏ đổi ký tự xuất sang %p rồi in ra. Kiểu để xem nó nằm ở bộ nhớ nào. Còn con trỏ mục đích là để thuận tiện trong việc lặp lại giá trị được gán thôi.
Học C xong e nên học gì tiếp theo ạ( E học tester ạ)
học test luôn đi e
Đoạn gần cuối a bảo là stack list, vậy stack list là gì vậy ạh
e học phần cấu trúc dữ liệu và giải thuật nhé
Anh ơi làm thế nào để cái chương trình .exe sau khi code bằng dev c của mình chạy được màu nền xám như a thế ạ? E mới học mà ko thích cái nền đen chữ trắng lắm
E làm theo hướng dẫn này nhé: ua-cam.com/video/jr_qpehUjCY/v-deo.html
Phần con trỏ này mệt não vl anh ạ
Cứ từ từ học e nha
xem xong e thấy là *ptr thì =a
ptr =&a
nhưng tại sao ghi gán con trỏ thì lại là *ptr=&a ạ , khó hiểu quáa
* đó là thuộc về khai báo con trỏ ko phải gán
e xem 3 lần :v
🤣🤣🤣
fPtr=&f a khai báo cái này để làm j a ?
theo mình biết là gán địa chỉ của biến f vào con trỏ fptr á bạn
Anh cho em hỏi tại sao chỉ %x ( hệ 16 ) mới hiển thị được địa chỉ của biến đó mà không phải là %o hay % khác ?
Ngôn ngữ quy định như thế e ạ
@ Cám ơn anh
@@binhthanh3063 ok e
Anh ơi, em thấy dùng %p cũng để in địa chỉ thi ko biết %p với %x khác nhau như nào ạ?
về bản chất k khác nhau nhé e
@ Em có chút vấn đề ko hiểu về phần array. Khi array khai báo với 1 số lượng phần tử nhất định rồi thì sẽ ko thay đổi được kích thước. Nhưng đọc bài này em vẫn thấy nó chèn thêm phần từ vào mảng được.
www.tutorialspoint.com/data_structures_algorithms/array_data_structure.htm
@@HieuLe-tw7qm e hiểu thế nào là chèn thêm? kích thước là không đổi, việc thay đổi giá trị tại một vị trí nào đó không đc gọi là chèn thêm nhé
Cái đó gọi là cập nhật em hiểu. Còn em ko hiểu đoạn insert trong link kia ấy.
@@HieuLe-tw7qm cái này họ làm sai về bản chất nhé e. k biết một nhầm lẫn nào đó đã xảy ra
dạ anh ơi, cái %x làm cho biến a từ 255 thành 62fe3c phải không ạ?, nếu phải thì anh cho em hỏi tại sao nó lại ra như vậy ạ
mặc định %x là để hiển thị giá trị ở hệ 16 e ạ. quy ước của nó là như thế
nếu khai báo là int* b int * b int *b đều đúng đúng k ạ
Tên không đc trùng nhau
dạ
bây giờ em hiểu như thế này, trong câu lệnh printf("......." , *ptr ); là xuất giá trị của biến mà con trỏ chỉ tới, còn printf("......." , ptr ); là xuất địa chỉ của biến mà con trỏ chỉ tới. em hiểu vậy đúng chưa anh
anh ơi tại sao con trỏ chỉ đê chứa địa chỉ, thì cần j phải theo kiểu ?
Đức Anh Nguyễn tại vì nó còn thay đổi giá trị tại nơi nó trở đến nữa nếu không có kiểu thì sai hết giá trị của biến à e
@ dạ c.ơn anh
anh ơi thế khi nó thay đổi thì giá trị thay đổi đó sẽ được đưa về biến hay nó sẽ lưu tại con trỏ (vì em thấy kích cỡ int tới 8byte ) và và biến cũ
@@ucanhnguyen2855 con trỏ không lưu giá trị của biến nên giá trị bị thay đổi sẽ nằm tại địa chỉ mà nó trỏ tới
@ dạ vd như *p=11, thì máy sẽ truy đến địa chỉ mà trỏ p lưu rồi vd (biên đó là a) thì a=11 hả anh
Anh cho em hỏi đoạn code này in ra cái gì ạ ?
int x=5;
int *p = &x;
printf("%d",p);
Hiệp Lê Minh Hiệp in ra địa chỉ biến x
Địa chỉ của biến(con trỏ) p và giá trí của (con trỏ) p có khác nhau không hả anh ?
khac
Anh có tài liều viết về con trỏ , véc tơ mảng ko . Cho em xin một ít ạ
E lên geeksforgeeks.com đọc cho nhanh
Ok a
@@thusat857 OK
thân triệu anh ơi cho em hỏi cái này. Em ko có bằng cntt, thì đi xin vc đc ko ạ ( em đang học đại học sư phạm)
@@thusat857 Hoan toan ok b nha
fb của a là j ạ...e muốn hỏi a một số thứ . E cám ơn
...facebook.com/than.trieu
Anh ơi cho em hỏi ạ!! Mình viết *ptr=&a là gán giá trị của a cho ptr đúng không ạ? Lúc in ra thì nó ra giá trị vậy sao b lại là ptr=&b luôn và không có dấu * trước ptr vậy ạ?
e đang nhầm giữa việc khởi tạo và gán.
trong cú pháp khởi tạo có kiểu của con trỏ. ví dụ int *aPtr = &a;
còn gán thì con trỏ đã đc khai báo giờ chỉ đem sử dụng. lúc này không còn *aPtr = &b; mà là aPtr = &b;
Vậy ở những hàm ví dụ void nhap(Nhanvien &NV) thì '&' có ý nghĩa gì vậy anh? em kb khi nào nên dùng và nó có td gì, anh giải thích giúp em vs ạ
Tác dụng của nó là cho phép hàm thay đổi giá trị của tham số
anh ơi, em hiểu là con trỏ này nó như một người rất giỏi hóa trang biến thành hết thằng này thằng nọ chỉ cần đưa địa chỉ nhà :). Vậy khi muốn biến thành thằng khác nó có phải lột tấm mặt mạ cũ ra không ạ, nếu ko thì tấm mặt nạ cũ lưu ở đâu ạ???? Anh lý giải giúp em với ạ, cảm ơn anh.
cho e hỏi ptr=&a với *ptr=&a có giống nhau không ạ
Khác nhé e. Cái thứ nhất là gán địa chỉ cho ptr cái sau là gán giá trị cho ô nhớ mà ptr trỏ tơid
Hay