以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 C/C++编程思想 』 (http://bbs.xml.org.cn/list.asp?boardid=61) ---- 下面一段话看不懂 (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=40703) |
-- 作者:sweetking -- 发布时间:11/30/2006 5:32:00 PM -- 下面一段话看不懂 inline void set_2d( folat *a, int m, int i, int j){ a[i*m+j]=a[i*m+j]*a[i*m+j]+a[i*m+j]; // 哎呀! } 可以将注释有"哎呀!"的那行代码替代为更简单的版本,该版本利用了引用,而且还带来额外的好处,那就是正确! (看出错在哪儿了吗?反正我第一眼没看出来。) inline void set_2d(float *a, int m, int i, int j){ float &r=a[i*m+j]; r=r*r+r; } 请求解释 谢谢~ |
-- 作者:卷积内核 -- 发布时间:12/1/2006 11:01:00 AM -- 给你举个相似的例子: i = 3; l = (++i); l = l + (++i); l = l + (++i); printf("%d %d\n",i,l); i = 3; 结果是: 在vc和java编译下结果还会不同。 编译器无法保证(i++) 在自增之前被取值。 |
-- 作者:lidongbin -- 发布时间:12/15/2006 10:12:00 PM -- 你最好在编译环境里试一下 |
-- 作者:一分之千 -- 发布时间:1/1/2007 12:44:00 PM -- inline void set_2d(float *a, int m, int i, int j){ float &r=a[i*m+j]; r=r*r+r; } 此处定义了一个内联函数(inline),该函数的意思就是把a数组的第i*m+j个元素的值平方(r*r)再加上本身(+r). 原函数直接使用了数组元素符号来进行运算,而新函数则是使用了一个float引用来进行运算.. |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
1,484.375ms |