请问: int *p = &a ; 是 ‘p’是指向 a的地址的指针,还是 是‘*p’是指向 a的地址的指针?谢。

作者&投稿:字卫 (若有异议请与网页底部的电邮联系)
C语言中*p=&a就是指针p指向变量a的地址吗?~

那要看是什么情况了,如果是定义的时候赋值就是把a的地址赋给p
如:
int a;int* p = &a;如果不是初始化就是把a的地址赋给p里存储的地址,如:
int a;int* b;int* p;p = &b; //p指向b的地址*p = &a; //让b存着a的地址运行结果如下


第二项试图将a的地址放在p指向的b里,因为b是(int),而a的地址是(int*),发生了错误
直接赋值等" int* p = &a; "同于" int *p; p = &a ",不要弄错

肯定是新的地址空间。

以a变量的值来初始化p指向的那块内存。
其次,a与*p也不再同一个逻辑内存中。前者存在栈中,后者存在堆中。

p是地址,*p是内容
这里有点绕,*p里面装的是表示a的地址的16位数,所以p不是指向a的地址的指针,*p也不是指向a的地址的指针

您好!int *p; 这里(或定义时)*的作用只是说明p是一个指针变量,因此p就是一指针变量,p指向a的地址,p是指向a的指针。

p是指向a的地址的指针,因为它整个语句的意思是:定义一个整形的指针变量p和一个整形的普通变量a,使指针p的地址指向变量a.

p指向a的地址,*p是a。

p是指向a的地址的指针 *p是该地址所存储的值


左贡县13349022875: int *p=&a 是什么意思 -
阴鱼圣迪: int *p=&a;其实是声明一个指针p,并初始化它指向a的地址.等同于int *p=null;int a=0;p=&a;

左贡县13349022875: int *p=&a与int *p=a有什么区别 -
阴鱼圣迪: 第一个a是int类型 int a; 这样定义的第二个a是一个指针类型或int 数组 int *a;这样定义的 int a[10];这样也可赋值语句等号两边类型要一致,或者兼容

左贡县13349022875: int **p=&a,怎么理解?这样写对吗? -
阴鱼圣迪: 如果a定义的是int *a;这么写可以.但是如果定义的int a;这么写编译器就会报错.int **p是个二级指针

左贡县13349022875: int *p=&a[0][0]; 中的*p是什么意思,怎样理解 -
阴鱼圣迪: int *p的含义是指定义p为整型数据的地址指针. *表示这是一个指针.int 表示指针的数据类型. &a[0][0]表示的是a这个数组第一个元素在内存中的存储地址int *p=&a[0][0];这段代码会将数组a的第一个元素的内存地址值赋给变量p 假如p的值发生变化,比如p++,执行后,p指针将会指向数组a的第二个元素. 通过*p操作,可以取得p所指地址下的存储内容.如y=*p;

左贡县13349022875: C语言: int *p=&a绝对是不对的吧? -
阴鱼圣迪: 这个写法是正确的啊! 在和类型一起申明的时候是应该这样写. 因为是申明,就是前面有内省的时候*p表示的不是一个值,是一个整形指针.可以改为如下,int *p;p=&a;

左贡县13349022875: c++语言中 int a[10];int *p=&a; -
阴鱼圣迪: 因为a是一维数组.可以用 int *p=&a[0]; 或用 int *p=a; 声明里 &a[0] 是 a 数组第一个元素的地址.声明里 a 是 a 数组的 首地址.声明里 &a[0] 和 a 的地址相同,但意义不同.&a 成了给 地址 再求 地址 的 运算,所以不对.

左贡县13349022875: c语言中int*p=a与int*p=&a有什么区别???求大侠帮忙!!! -
阴鱼圣迪: 区别很大,第一个是把a赋给指针变量p,a变量必须存放的是指针值;第二条语句是把a变更本身的内存地址拿出来,赋值给指针变量p.

左贡县13349022875: int* p=&a [0],请问是如何理解的? -
阴鱼圣迪: 此问题可以拆开写 int *pp=&a[0]; 意思是一样的.先定义了整形指针p,然后让p指向数组a的第一个元素的地址. 这里面p是指针,起指向变量地址的作用,p是一个变量,会随着你所指向的元素的地址的改变而改变.

左贡县13349022875: 谁能解释下int *p=&a是对的,但是*p=&a;却不对? -
阴鱼圣迪: 当定义 int *p=&a; 这种写法时. p是变量. int*是类型. 给变量初始化的时候,是给变量赋值,也就是说 这里本质上也是p=&a;

左贡县13349022875: int*p &a 为什么 *p=&a 不能表示.我是小菜鸟! -
阴鱼圣迪: int *p=&a 是定义一个指针p并且初始化 但int *p;p=&a;就不能写成*p=&a,因为p是指针,*p就是指针所指的东西了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网