定义数组a[ ],为什么int *p=&a[0];等于int *p; p=&a[0];
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/16 05:43:56
定义数组a[ ],为什么int *p=&a[0];等于int *p; p=&a[0];
如果
int a;
int *p;
p=&a;
*p=a;
这里的指针变量p放的是a的地址,*p就是指a的内容,如果上式成立,那么关于这个如果写成int *p=&a就不对了?为什么
感觉是*p放的是内容,int *p=&a[0];根据优先级,好像应该是说把a[ ]的地址给*p,就是说p里面放的是a[ ]
地址的地址,而*p则等于a[]的地址!
如果
int a;
int *p;
p=&a;
*p=a;
这里的指针变量p放的是a的地址,*p就是指a的内容,如果上式成立,那么关于这个如果写成int *p=&a就不对了?为什么
感觉是*p放的是内容,int *p=&a[0];根据优先级,好像应该是说把a[ ]的地址给*p,就是说p里面放的是a[ ]
地址的地址,而*p则等于a[]的地址!
一个是声明时初始化,一个是先声明后赋值,在C语言里两者等价.
更好的写法应该是int *p=a;因为C语言数组名等于首个元素的地址,
也就是a == &a[0]
更好的写法应该是int *p=a;因为C语言数组名等于首个元素的地址,
也就是a == &a[0]
定义数组a[ ],为什么int *p=&a[0];等于int *p; p=&a[0];
若有定义int a[2][2]={1,2,3,4},*p[3];p[0]=a[1];则*(p[0]+1)表示的数组元素是
C语言若定义int a[5],*p=a;则对a数组元素正确引用为哪个?为什么?
若有定义 int a[3][4],*p; 则对数组元素a[i][j](0
Int a=1; Int *p; p=&a; printf(“%d\n”,*p); 和Int a=1; Int*p; *
定义指针int *p p=a,p=&a,*p=a,*p=&a,这四个的区别!
int *p,a[10]; for(p=a;p
fun ( int *p ) { int a=10; p = &a; ++a; } main ( ) { int a=5
设有定义int a[10],*p=a;下列对数组元素a[1]的引用中,错误的是
若有以下定义,则对a数组元素的正确引用是( ).int a[5],*p=a; A.*&a[5] B.a+2 C.*(p+
若有定义语句int a[5], *p=a;,则对a数组元素的正确引用是什么 A *&a[5] B *a+2 C *(p+
若有定义:int a[5],*p=a; 则对a数组元素地址正确引用的是( ).&a[5] p+2 a++ &a