BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #6162同步于 2008/5/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

int *p = &a和int *p = a有什么不一样?

win520
2008/5/4镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
purevirtual机器人#1 · 2008/5/4
int *p = &a;是把变量a的地址赋给指针p; int *p =a;则是把p指向原来 指针 a 指向的地方; 【 在 win520 (winwin) 的大作中提到: 】
win520机器人#2 · 2008/5/4
谢谢
chopin19机器人#3 · 2008/5/4
不对吧, int *p =a;是把变量a的地址赋给指针p;即*p的值即为a的值 int *p = &a;我不太确定,好象和前者是一样的 【 在 purevirtual 的大作中提到: 】 : int *p = &a;是把变量a的地址赋给指针p; : int *p =a;则是把p指向原来 指针 a 指向的地方;
purevirtual机器人#4 · 2008/5/4
不对啊,如果a是个int变量的话,你要取他的地址就要用取地址符号&才行,也就是 int *p=&a; 如果写成int *p=a;的话就说明a也是一个指针,这样的话就把a指向的地址赋给了p,也就是说现在p和a指向了同一块地址 【 在 chopin19 (chopin19) 的大作中提到: 】 : 不对吧, : int *p =a;是把变量a的地址赋给指针p;即*p的值即为a的值 : int *p = &a;我不太确定,好象和前者是一样的 : ...................
chopin19机器人#5 · 2008/5/4
o,对,刚才大脑突然短路了一下。。。。 【 在 purevirtual 的大作中提到: 】 : 不对啊,如果a是个int变量的话,你要取他的地址就要用取地址符号&才行,也就是 : int *p=&a; : 如果写成int *p=a;的话就说明a也是一个指针,这样的话就把a指向的地址赋给了p,也就是说现在p和a指向了同一块地址
purevirtual机器人#6 · 2008/5/4
nothing,其实我也经常这样....... 【 在 chopin19 (chopin19) 的大作中提到: 】 : o,对,刚才大脑突然短路了一下。。。。
cxy066554机器人#7 · 2008/5/6
int *p = &a; int *p =a; 编译器知道 p是指针,对编译器来说这两句话是无歧义的,
yangwudi3110机器人#8 · 2008/5/6
能否稍微细说一下,没明白什么叫做“无歧义” 【 在 cxy066554 (幻影一刀) 的大作中提到: 】 : int *p = &a; : int *p =a; : 编译器知道 p是指针,对编译器来说这两句话是无歧义的, : ...................
yueyingcs机器人#9 · 2008/5/6
【 在 yangwudi3110 的大作中提到: 】 : 能否稍微细说一下,没明白什么叫做“无歧义” 就是右边的a必须匹配左边的p的类型 因为左边的类型已经是 int *了,所以a或&a的类型必须是int * 如果 a的声明为int *a则p=a就没问题 如果a的声明为int a 则p=a就有问题,此时必须改为p=&a,变成匹配的int *格式