新手问个郭天祥老师《新概念51单片机C语言》上的一个问题
划线的那一段我怎么感觉那个int a,*p=&a;
中哪个&要去掉呢,&a不就是a的地址了吗?*p应该是a的值啊。不知道理解的对不对。望高手解惑。 renpeng009 发表于 2012-11-21 15:08 static/image/common/back.gif
你理解的不对。
那怎么理解呢?
一个是定义加赋值
一个是赋值
int *p = &a;
等效于
int p;
p = &a;
翻谭浩强的书看下就知道了 renpeng009 发表于 2012-11-21 15:14 static/image/common/back.gif
这样写,看看你是否能理解。
int a,*p;
p=&a;
你写的这个就是下面的(2)赋值,能看懂,但第一种情况感觉是多了个& 看看C语言吧,这是C语言里面的 int a,*p=&a;
提示:这只是一条语句,中间是逗号,不是分号。
也就是讲,这条语句定义了1个变量a和1个指针变量p,并且给这个指针变量赋初值为变量a的地址。这条语句中的*号表示定义的是一个指针变量而不是取指针变量的值。
如果还不清楚,建议温习C语言啊。 继续往下看啊,下一页就有说明了:
知道了,这个*是个说明符。谢谢以上各位热心人。 {:smile:}{:smile:}{:smile:}学到了 兄弟多去学学C语言吧!!!!!汇编语言也得看看……。 6楼说的对。。。{:lol:}
在定义变量的同时,把a的地址值赋给变量了 * 有两种"叫法", 在定义时候一种, 在取值的时候一种.建议看 C primer plus
页:
[1]