问一个C语言的问题

[复制链接]
1544|6
 楼主| 南宫云明 发表于 2013-5-6 15:10 | 显示全部楼层 |阅读模式
本帖最后由 南宫云明 于 2013-5-6 15:13 编辑
  1. unsigned char *point,buff[10];

  2. //请问一下以下两条语句有什么区别吗?
  3. point = buff;
  4. point = &buff;
 楼主| 南宫云明 发表于 2013-5-6 15:16 | 显示全部楼层
本帖最后由 南宫云明 于 2013-5-6 15:41 编辑

以上两条代码在KEIL里面编码都能通过,且执行后结果是一致的。
但是在IAR1.3(for stm8)里编译第二条代码是通不过的!!!

是不是哪里有问题?
followme001 发表于 2013-5-6 15:43 | 显示全部楼层
第二条有点问题吧,取第一个元素的地址,应该是point = &buff[0];
eyesmall 发表于 2013-5-6 15:51 | 显示全部楼层
buff  代表数组首地址     &buff  首地址再取地址什么意思   如果是&buff[0]   还是好理解的
ayb_ice 发表于 2013-5-6 15:54 | 显示全部楼层
point = &buff[0];
以上写法规范些

等同于
point = buff;

但第一种明显可读性好些
 楼主| 南宫云明 发表于 2013-5-6 16:15 | 显示全部楼层
我也是一般用第一种写法的。。。不过我看别人写的程序,编译环境是KEIL,用的第二种写法。。。编译居然能通过,而且执行结果居然也相同!!!

KEIL真是一个神奇的软件~~~~
liang7143 发表于 2013-5-6 16:55 | 显示全部楼层
本帖最后由 liang7143 于 2013-5-6 16:56 编辑

buff 是地址     
&buff不知道是啥?

point  = &((unsigned char *)0x5000);

这样keil也可以通过,果真神奇
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

272

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部