读书人

差别在哪里

发布时间: 2013-07-16 22:38:05 作者: rapoo

区别在哪里?
int i[10];
int * p = & i[0];
int offest = 3;

p += offest; (a)
p += 3; (b)

表达式 (a) 和 (b) 有什么区别?
差别在哪里

唯一看出来的区别就是:
offset,看代码的人一看,就知道是偏移量,修改容易。因为后面的代码可能还会用到offset的内容

[解决办法]
如果编译器没有优化的话, (a) 比 (b) 要多访问一次内存.
[解决办法]
没有任何区别啊,
整数默认是int型的
[解决办法]
这个都是偏移地址量,区别没有
[解决办法]
一样的行为。
[解决办法]
1、VC2005上结果是一样的
2、编译环境不同,可能有差别
3、a的可读性强

读书人网 >C语言

热点推荐