01/10/2018, 13:29
Gặp vấn đề liên quan đến việc gán giữa con trỏ và mảng. Mong mọi người giúp đỡ
Như tiêu đề thì em có các thắc mắc các dòng code sau:
int *p;// (1)
int arr[3] = { 0, 1, 2 };//(2)
p =arr;//Không hợp lệ//(3)
p=&arr[0];//Hợp lệ//(4)
p=&arr;//Hợp lệ(5)
Trong khi
arr=007DF9A8;
&arr[0]=007DF9A8;
&arr=007DF9A8;
có cùng địa chỉ
Bài liên quan
Con trỏ của bạn đâu?
Biến p là con trỏ, nó chỉ có thể trỏ vào một mảng tĩnh hoặc một con trỏ khác cùng cấp(cùng kiểu)
Với mảng tĩnh, khi dùng &(ở 3) nó sẽ trở thành một con trỏ mảng, lúc này không cùng cấp với con trỏ p, vậy nên không gán được là đương nhiên.(ở đây p bị gán vào *[], khác * hoặc [])