c语言中int*p=a与int*p=&a有什么区别???求大侠帮忙!!!

是不是int*p=&a是把变量a的地址复制给指针p,所以p中存储的是a的地址,而int*p=a就是p指向a的地址????

区别很大。第一个int *p = a;这是把a给一个指针,一般a是指针或数组,否则可能会造成很大错误。
int *p = &a;这是把a的地址给p,一般a可以是一个整型变量。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-11-10
int *p是定义一个指针 对应的该是地址

int*p=&a 则a是个指针或数组
int*p=&a 则a是个数据追问

是不是int*p=&a是把变量a的地址复制给指针p,所以p中存储的是a的地址,而int*p=a就是p指向变量a的地址????谢谢

追答

no。。
你还是概念不清啊
如果a只是个单纯的数据
int*p=a这种写法就是错的

必须是int*p=&a

追问

int a =3;
int *p = a;
//int *p=&a;
课本上两种都有啊,麻烦了,我是初学者!!!

追答

必须有问题啊

应该是这样吧
int a =3;
int *p;
*p=a;

本回答被提问者和网友采纳
第2个回答  2012-09-19
区别很大,第一个是把a赋给指针变量p,a变量必须存放的是指针值;第二条语句是把a变更本身的内存地址拿出来,赋值给指针变量p。
第3个回答  2012-09-19
int*p=a,首先a是一个指针,然后定义一个int型指针p,指向a
int*p=&a ,首先a是一个数值(比如之前定义它 int a=100),那么在定一个指针p,指向a=100中a的内存地址
注意两个式子放在一块写是错误的。不可能定义a为指针,又为数值
第4个回答  2012-09-19
因为p为指针变量,它初始化的值只能为地址,例如:
int b[10],a;
int *p1=b,*p2=&a; //这两种赋值都可以,注意,a,b都是地址,b是数组名,为数组的首地址,
若如下定义就是错误的:
int *p3=a;//a是简单变量,不是地址,而是值,类型不匹配,所以错了

c语言中int*p=a与int*p=&a有什么区别???求大侠帮忙!!!
区别很大。第一个int *p = a;这是把a给一个指针,一般a是指针或数组,否则可能会造成很大错误。int *p = &a;这是把a的地址给p,一般a可以是一个整型变量。

int *p=a和int *p=&a有什么区别?
int *p=&a 其实是两个语句 等价于 int *p; p=&a;如果a是int型,int *p=a是错误的,正确的应该是 int *p; p=&a;在定义的时候不能给p直接赋值整型,只能赋值int型地址 即 &a;如果要给p指针指向的地址赋值,就可以*p=a;但不能在定义*p的时候直接赋整型。

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

这个c语言中 *p=&a 和 int*p p=&a 的区别
总得来说没区别,就是指针初始化的时间不同而已 int *p = &a;\/\/这里p声明的时候直接初始化它的值为变量a的地址 int *p;\/\/声明指针p,p的值不确定可能指向任何地址,p = &a;\/\/显示初始化使p指向a的地址

int *p=&a;和 int *p; *p=a;和 int *p; p=&a;有区别么?
当然是d正确 int *p=&a; 与 int *p; p=&a;这两个是等价的 但是int *p; *p=a; 就不同了,只是把a的值赋给*p,并没有让p指向a的地址

...指针赋值的语句int *p=a不是写成这样int *p=&a ?
c语言指针赋值要理解清楚,首先对p定义为指针即*p,然而p就是一个指针,a是一个值,int*p=a的意思就是p指针取a为其值,也就是a赋值给p指针,而你说的*p=&a是错误的,右边是取地址a,左边是p指针取值,这样写相当于p=a,是错误的,指针和赋值就冲突了,变量不一样。说白了*这个符号就是取...

int *p=a和int *p=&a有什么区别?
int a[10];int p=a;\/\/与前面定义的数组名a类型相同,才可以这样赋值。int a;int p=&a;\/\/前面定义的a是普通变量,才可以这样赋值。

int *p=&a;与int a;int *p;p=&a有什么区别? 为什么一个是*p=&a,一个...
呵呵 ,前面int *p=&a 之前肯定先定义过变量a (int a)了 所以 定义整型指针变量p的时候直接把a的地址交给了p;后面也是这个意思 区别在于是不是定义p的同时就给p赋初值 懂不?

在C\/C++中,给指针赋值时,int *P=&a;和int *P;P=&a;是否一样?
你说“可是前者访问*P就相当于a,但却是a的地址,这不是矛盾吗?”,是因为你不明白*p的多义性,举两个例子你就知道了:int *p;这是定义一个指针变量,应该把他看作(int *)p;其中(int *)跟int一样,也看作是一种类型:指向实型数的指针型。而对于 int *p=&a;int b;p=b;在...

c语言中*p=a与*p=&a有什么区别
int a=3,*p=&a 也就是说在赋值时,int *p=&a 相当于 int *p,p=&a 它们的区别其实就是 int *p=&a是同时定义*p并对赋值p(即a的地址赋给P),而p=&a,只是对P赋值,没有定义指针变量。但要注意,只有在同时定义赋值时“*p=&a”这种写法才是对的 其他情况下不要用*p=&a,这种形式,...

相似回答