C-FAQ
来源:互联网 发布:java小游戏毕业设计 编辑:程序博客网 时间:2024/04/26 05:50
http://oss.org.cn/kernel-book/ccfaq/node1.html
http://c-faq.com/
4.11 为什么如下的代码 int a = 100, b = 100; long int c = a * b; 不能工作?
根据 C 的内部类型转换规则, 乘法是用 int 进行的, 而其结果可能在转 换为 long 型并赋给左边的 c 之前溢出或被截短。可以使用明确的类型 转换, 强迫乘法以 long 型进行:long int c = (long int)a * b;注意, (long int)(a * b) 不能达到需要的效果。
当两个整数做除法而结果赋与一个浮点变量时, 也有可能有同样类型的问题, 解决方法也是类似的。
参考资料: [K&R1, Sec. 2.7 p. 41]; [K&R2, Sec. 2.7 p. 44]; [ISO, Sec. 6.2.1.5]; [H&S, 使用我的编辑器,下面的代码]; [CT&P, Sec. 3.9 pp. 49-50]。
5.2 *p++ 自增 p 还是 p 所指向的变量?
后缀++
和 --
操作符本质上比前缀一目操作的优先级高, 因此 *p++ 和 *(p++) 等价, 它自增 p 并返回 p 自增之前所指向的值。要自增 p 指向的值, 使用 (*p)++, 如果副作用的顺序无关紧要也可以使用 ++*p。- C FAQ
- C-FAQ
- C语言FAQ(1)
- StringCollection FAQ [C#, BCL]
- StringCollection FAQ [C#, BCL]
- Objective-C FAQ 中文版
- C语言简介&FAQ
- C/C++ Newbie's FAQ
- C/C++ Newbie's FAQ
- EM310,GTM900-C 模块FAQ
- Objective-C FAQ 中文版(转贴)
- my FAQ about c++/c/mfc .
- FAQ
- FAQ
- FAQ
- FAQ
- FAQ
- FAQ
- Android开发:去掉Activity的头部标题栏及全屏显示
- strtok源码剖析 位操作与空间压缩
- Linux 下 Oracle备份脚本(RMAN/EXP)
- 线程同步方式汇总
- FMDB 使用清晰易懂的介绍
- C-FAQ
- android应用实现重启
- 开源协议
- 解决IE 6下span标签左浮动后产生换行的BUG
- 小羊驼和你一起学习cocos2d-x之四(摇杆)
- 通过socket实现网络通信
- [4月2日的脚本] 在Windows 8中批移除多个文件的只读属性 (VBScript)
- Intrinsics头文件与SIMD指令集、Visual Studio版本对应表
- invalid initialization of non-const reference of type ‘int*&’ from a temporary of type ‘int*’