[C语言] 请教C语言自加加的问题!

[复制链接]
4158|25
kseeker 发表于 2014-1-17 10:24 | 显示全部楼层
num++和++num是不同的。num++返回的值是自增以前的值,是一个临时变量。
对于table [num++]=value;先赋值还是先++结果没有任何不同。
这是C里非常常用的一种用法,没有任何会造成误解的地方。
 楼主| shuidi_wangdan 发表于 2014-1-17 16:41 | 显示全部楼层
chenbb8 发表于 2014-1-17 10:15
嗯,看帖不仔细,理解错你的意思了~

呵呵,我有时也这样。
 楼主| shuidi_wangdan 发表于 2014-1-17 16:43 | 显示全部楼层
kseeker 发表于 2014-1-17 10:24
num++和++num是不同的。num++返回的值是自增以前的值,是一个临时变量。
对于table [num++]=value;先赋值 ...

我刚开始理解是先++后赋值,经过自己的实际操作发现自己的理解是错误的。
guangbiao 发表于 2014-1-17 17:32 | 显示全部楼层
印象中时先赋值再++
楼主这种用法我很少用,但以下写法我经常用哦。。。
unsigned char  Table[10]=0,
unsigned char  value=0;
pTable = Table;
*pTable++ = value;

到目前为止,好像还没有遇到过问题。。。
 楼主| shuidi_wangdan 发表于 2014-1-18 08:08 | 显示全部楼层
guangbiao 发表于 2014-1-17 17:32
印象中时先赋值再++
楼主这种用法我很少用,但以下写法我经常用哦。。。
unsigned char  Table[10]=0,

你这种用法比较直观,关键是用着方便才最佳选择。
liub_2014 发表于 2014-4-11 15:28 | 显示全部楼层
结果等效于2L所示的,但先是num加1 还是table[num]=value这得看编译器了。这个问题主要在于是先计算左值还是右值,这跟编译器,表达式不同而不同的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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