c语言中int*p=a与int*p=&a有什么区别???求大侠帮忙!!!
是不是int*p=&a是把变量a的地址复制给指针p,所以p中存储的是a的地址,而int*p=a就是p指向a的地址????...
是不是int*p=&a是把变量a的地址复制给指针p,所以p中存储的是a的地址,而int*p=a就是p指向a的地址????
展开
展开全部
int *p是定义一个指针 对应的该是地址
int*p=&a 则a是个指针或数组
int*p=&a 则a是个数据
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
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-09-19
展开全部
区别很大,第一个是把a赋给指针变量p,a变量必须存放的是指针值;第二条语句是把a变更本身的内存地址拿出来,赋值给指针变量p。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int*p=a,首先a是一个指针,然后定义一个int型指针p,指向a
int*p=&a ,首先a是一个数值(比如之前定义它 int a=100),那么在定一个指针p,指向a=100中a的内存地址
注意两个式子放在一块写是错误的。不可能定义a为指针,又为数值
int*p=&a ,首先a是一个数值(比如之前定义它 int a=100),那么在定一个指针p,指向a=100中a的内存地址
注意两个式子放在一块写是错误的。不可能定义a为指针,又为数值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-09-19
展开全部
因为p为指针变量,它初始化的值只能为地址,例如:
int b[10],a;
int *p1=b,*p2=&a; //这两种赋值都可以,注意,a,b都是地址,b是数组名,为数组的首地址,
若如下定义就是错误的:
int *p3=a;//a是简单变量,不是地址,而是值,类型不匹配,所以错了
int b[10],a;
int *p1=b,*p2=&a; //这两种赋值都可以,注意,a,b都是地址,b是数组名,为数组的首地址,
若如下定义就是错误的:
int *p3=a;//a是简单变量,不是地址,而是值,类型不匹配,所以错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |