kosmosy 发表于 2012-11-21 14:54:51

新手问个郭天祥老师《新概念51单片机C语言》上的一个问题

划线的那一段我怎么感觉那个
int a,*p=&a;
中哪个&要去掉呢,&a不就是a的地址了吗?*p应该是a的值啊。不知道理解的对不对。望高手解惑。

kosmosy 发表于 2012-11-21 15:10:00

renpeng009 发表于 2012-11-21 15:08 static/image/common/back.gif
你理解的不对。

那怎么理解呢?

xi_liang 发表于 2012-11-21 15:18:59

一个是定义加赋值
一个是赋值

int *p = &a;
等效于
int p;
p = &a;

翻谭浩强的书看下就知道了

kosmosy 发表于 2012-11-21 15:19:38

renpeng009 发表于 2012-11-21 15:14 static/image/common/back.gif
这样写,看看你是否能理解。
int a,*p;
p=&a;


你写的这个就是下面的(2)赋值,能看懂,但第一种情况感觉是多了个&

beijingqiang 发表于 2012-11-21 15:21:19

看看C语言吧,这是C语言里面的

lovelywwei 发表于 2012-11-21 15:22:53

int a,*p=&a;
提示:这只是一条语句,中间是逗号,不是分号。
也就是讲,这条语句定义了1个变量a和1个指针变量p,并且给这个指针变量赋初值为变量a的地址。这条语句中的*号表示定义的是一个指针变量而不是取指针变量的值。
如果还不清楚,建议温习C语言啊。

jade1988 发表于 2012-11-21 15:26:00

继续往下看啊,下一页就有说明了:

kosmosy 发表于 2012-11-21 15:28:45

知道了,这个*是个说明符。谢谢以上各位热心人。

死神来了1990 发表于 2012-11-21 16:28:12

{:smile:}{:smile:}{:smile:}学到了

853728579 发表于 2012-11-21 22:23:42

兄弟多去学学C语言吧!!!!!汇编语言也得看看……。

panguoxian 发表于 2012-11-21 22:31:56

6楼说的对。。。{:lol:}

在定义变量的同时,把a的地址值赋给变量了

QQ373466062 发表于 2012-11-22 09:21:34

* 有两种"叫法", 在定义时候一种, 在取值的时候一种.建议看 C primer plus
页: [1]
查看完整版本: 新手问个郭天祥老师《新概念51单片机C语言》上的一个问题