c编程应注意到的细节问题
2012-08-09 22:18
204 查看
1、数学中10^0为1,但是用函数pow(10,0)时为0!还有就是描述2的幂的时候,可以用<<或者>>,但是注意,2^0=1, pow(2,0)=0,2<<0=0,1<<0=2,2<<1=4,用移位运算表达幂的时候,2^x不是2<<x,而是1<<x!,1<<1=2;1<<0=0(其中pow()在#include<math.h>中声明)
2、在用gets函数时,如果前面有printf("\n");等输出的换行符或者刚刚按下过enter,则会影响gets函数读入数据,可以使用getchar();来处理。
3、对字符数组元素单个赋值的时候,如果维数有剩余,系统会自动字后面加上'\0'
比如:char a[10]={'h','e','l','l','o'};printf("%s",a);输出为:hello,结果正常!
但是,如果char a[10];a[0]='c';printf("%s",a);输出为:c?w槎€|,有乱码!这种情况下不会添加'\0'。并且对于二维数组str[3][4],str[0][]={'a','b','c','d'},仍然可以当字符串来处理。
2、在用gets函数时,如果前面有printf("\n");等输出的换行符或者刚刚按下过enter,则会影响gets函数读入数据,可以使用getchar();来处理。
3、对字符数组元素单个赋值的时候,如果维数有剩余,系统会自动字后面加上'\0'
比如:char a[10]={'h','e','l','l','o'};printf("%s",a);输出为:hello,结果正常!
但是,如果char a[10];a[0]='c';printf("%s",a);输出为:c?w槎€|,有乱码!这种情况下不会添加'\0'。并且对于二维数组str[3][4],str[0][]={'a','b','c','d'},仍然可以当字符串来处理。
相关文章推荐
- socket编程的细节问题
- 使用construct2制作游戏时需要注意到的细节问题有哪些
- Linux shell编程中IO和条件及循环处理的细节问题讨论
- 建议转变编程时的思维习惯改为:忽略细节关扰,直指问题核心,追寻问题关键。
- Windows网络编程细节问题
- 数据库编程细节问题 --1. insert与where问题
- 再谈hive-1.0.0与hive-1.2.1到JDBC编程忽略细节问题
- PHP 编程一些及其细微的细节问题
- 马尔可夫链——从一个编程作业中看看程序设计的一些细节问题
- 数据库编程细节问题 -- 5.group by 的使用
- SOCKET网络编程细节问题(4)
- highcharts 一个不容易注意到的细节问题
- SOCKET网络编程细节问题3
- 编程中的细节问题(一)
- Linux shell编程中IO和条件及循环处理的细节问题讨论
- SOCKET网络编程细节问题1
- C语言编程细节之n=-n的问题
- 一则关于对象的使用原则,也许编程十年了,也没注意到的问题
- PHP 编程一些及其细微的细节问题
- 数据库编程细节问题 -- 获取关于mysql的基本信息