C 指针和数组问题

来源:百度知道 编辑:UC知道 时间:2024/06/16 18:21:20
int a[]={5,3,1,2,4};
int *p=a;
能否通过p指针得到a数组的长度?

char k[]="abcd";
char *p=k;
能否通过p指针得到k数组单个元素的地址?

小弟我太菜了以上两个问题不会,望前辈们帮我解答下。小弟感激不尽。

不可能通过p指针得到a数组的长度
a数组的长度:sizeof(a)/sizeof(a[0])

char k[]="abcd";
char *p=k;

p 就是k[0]的地址
p+1 就是k[1]的地址
p+2 就是k[2]的地址

int a[]={5,3,1,2,4};
int *p=a;

不能通过指针p与标准库函数或者操作符(如sizeof操作符)得到a数组的长度.

char k[]="abcd";
char *p=k;

可以通过指针p得到k数组单个元素的地址,如k[3]元素的地址就是p+3