30/09/2018, 19:16

Sự khác nhau giữa (*) khai báo con trỏ và (*) khi lấy giá trị trong con trỏ

Như tiêu đề em đã viết. Mọi người có thể nói cho em biết sự khác nhau giữa 2 dấu (*) đó được không.

Dương Nguyễn Văn viết 21:29 ngày 30/09/2018

int *c; //Khai báo một con trỏ kiểu nguyên tên là c.
int a=10;
c=&a;

Lúc này :c = địa chỉ của ô nhớ mà nó trỏ đến. Ở đây là địa chỉ của biến a trong bộ nhớ máy tính!
*c = giá trị của ô nhớ mà nó trỏ đến. Cụ thể ở đây là giá trị của biến a trong bộ nhớ máy tính.
&c= địa chỉ ô nhớ của biến con trỏ.

Trần Hồng Phong viết 21:27 ngày 30/09/2018

Thật ra nó chỉ là quy ước thôi, dùng * vậy cho dễ ghi nhớ, nếu không dùng * để lấy giá trị con trỏ thì người ta cũng quy ước dùng cái khác

Suy luận vui của mình (fun thôi nhé vì kí hiệu đó cũng chỉ là qui ước). Có thể bạn hay khai báo một var con trỏ kiểu như int *p, nó cũng đúng nhưng đôi khi dễ nhầm lẫn *p là biến kiểu int. Khi khai báo dạng int* p thì dễ hiểu hơn, p có kiểu int* mình nghĩ cách qui ước *p để lấy ra giá trị của p cũng vậy, khi chuyển dấu * từ int* sang p (thành *p) thì int mất * -> *p có kiểu int

Trần Xuân Cường viết 21:31 ngày 30/09/2018

Vậy có nghĩa là 2 dấu (*) này hoàn toàn khác nhau phải không ạ.

Dương Nguyễn Văn viết 21:18 ngày 30/09/2018

Hiểu nó là như vậy. Cái đầu là để phân biệt giữa khai báo tên biến và con trỏ. Nhưng khi sử dụng nó thì nó lai chỉ giá trị của biến mà nó trỏ đến.

Minh Anh viết 21:26 ngày 30/09/2018

Đơn giản thôi mà
Giả sử ta có một biến a có địa chỉ trong ô nhớ là 220 (cái này là máy nó random lưu vào chỗ bất kỳ nhé) và một con trỏ p
-Khi bạn viết :

int a=5;
int *p;
p= &a;

Thì ngay lập tức, giá trị của con trỏ p sẽ bằng địa chỉ của biến a, tức là p=220 .
-Còn giả sử nếu bạn viết :

printf("%d",*p);

Thì máy sẽ in ra là 5
-> *p=5
=> viết *p có nghĩa là tham chiếu đến giá trị của cái biến mà con trỏ đã lấy địa chỉ , ở đây biến mà con trỏ đã lấy địa chỉ là biến a, mà a=5 => *p=5

rogp10 viết 21:30 ngày 30/09/2018

Code này không đúng đâu

Còn vì sao thuật toán nó vậy thì bạn thử đổi chỗ hai cái tô/bát là thấy ngay.

明玉 viết 21:19 ngày 30/09/2018

#ngừng_đào_mộ


Bài liên quan
0