为您找到"
int *p, a=5; p=&a; *p=3; 以上代码中,两个*p有什么不同?
"相关结果约100,000,000个
3.p=&a的意思是:将a的地址赋给指针p;4.区别:*p是一个值;p是一个地址;两者完全不相同。5.*代表着p指向的地址的值,简单来说就是取值;&是取地址符号,取的是地址;p是指针,可以理解为所指向的值的地址,*p就是取p指针指向的地址的值,&a就是取a的地址。
int *p;表示开设一个变量p用于存放地址 数组名即可理解为数组起始地址,也是数组第1个元素地址 int *p=a;与int *p; p=a;和int *p; p=&a[0];都是完成同样的工作:将数组起始地址放到变量p中。
int *p[3]是定义了一个名为p的数组,里面有三个类型为int*的元素。也就是p[0],p[1],p[2]分别存储了一个int*;而int (*p)[3]是定义了一个指向有三个元素的int类型数组的指针,比如说 int a[3];int (*p)[3]=&a;那么(*p)[0]就是a[0]
先上结论:对于int a[5],*p;p=a; 或p=&a[0]是正确的 p=&a严格来说是错误的 首先要搞清楚a与&a的区别:a表示数组首元素的首地址,即元素a[0]的地址;&a表示整个数组的地址。二者的值是相同的,但意义并不一样。正如成都市政府与四川省政府的地址都在成都,但二者表示的含义不同。如下...
有int a[10],*p;后,p=a;是正确的,是把数组a的首地址赋给同类型指针p。*p=a;就是错误的了,因为*p是int型,而a是int *型,等号两端类型不匹配,编译不会过的……但是在定义时可以综合写成int a[10],*p=a;,这和int a[10],*p; p=a;是等价的——因为int a[10],*p;中的*是int ...
c语言中*p=&a和p=&a只有一个区别就是指针初始化时间不同。p=&a:P是1维指针;p=&a:P是2维指针;p=&a示例:inta;int*p;a=5;p=&a;printf("valueis:%d.",*p);
先上结论:对于int a[5],*p;p=a; 或p=&a[0]是正确的 p=&a严格来说是错误的 首先要搞清楚a与&a的区别:a表示数组首元素的首地址,即元素a[0]的地址;&a表示整个数组的地址。二者的值是相同的,但意义并不一样。正如成都市政府与四川省政府的地址都在成都,但二者表示的含义不同。如下...
二、含义不同:第二个就是这个指针所指的值是一个大小为5个int的数组的首地址。p+1(数组地址+1)代表内存地址下移了5个单位。三、使用不同:int (*p)[5];int a[10][5];p=&a[1]; // 现在(*p)就等于a[1] 所以 a[1][2]可以表示为(*p)[2]...
语句里,若 p 是指针变量,p=a; *p 表示 值,把 变量 a 的当前值 赋给 指针。(指针指向的地址不变)。p = &a; p 表示指向的地址, 把 变量 a 的地址 &a 赋给 p, 也就是让指针指向 变量 a。例如:int a=2, b=3;int *p=&b; // 指针指向地址 初始化, 指向 b printf(...
我也来回答一下,个人见解,欢迎指教。int a[5],*p;p=a;p=&a[0];p=&a int a[5];//a是指针常量,表示的是数组首元素的地址,即a=&a[0]。int *p=a;p=&a[0];//因为a=a[0],所以p=a 和p=&a[0]是等价的。p=&a//int *p,p是一个指向int类型的指针,而&a表示的是指向...