1、若果说,自己总是会把=和= = 弄错的话,不如把变量放在右侧,就比如说*(if(3== x)和if(x= =3)),如果可以的话,还是建议第一种写法,因为就算是自己写错了,也可以通过系统自己来帮助我们找出错误,如果一不小心写成了if(x=3),在第二种的情况下,是很难找出来的。 2、在写判断的时候,我们最好不要连用操作符之类的,就比如说(i<j<k,i=3,j=4,k=2)*,如果说根据我们的判断,这句话应该是错误的,但是机器不会那么认为,机器是从左到右依次进行,在比较完i和j的大小之后,就会把前面的结果认为是1,然后再去和k进行比较。所以最后的结果却是真确的。为了防止这种情况的发生,我们可以把原来的代码改为**(i<j&&j<k)**. 3、布尔类型的头文件是<stdbool.h>,在用的时候是这样的。
代码语言:javascript复制_Bool flag=ture;
if(flag)
printf("i like Cn");
也要注意的是,要大写。 4、signed是有正负号,而unsigned是只有0和正整数。一般来说signed是可以省略的,但是写了也不算是错误的,而unsigned也有自己的好处,因为在知道数值一定是正数的情况下,能有更多的数值。 5、全局变量是在*int main()之外并且之前的定义的数值,而局部变量就是在int main()*之内定义的。但是当局部变量和全局变量有同样相同的名字的时候,而又在int main之内用到的话,之前还刚好定义的局部变量,那局部变量的优先级是高于全局变量的。 6、内存三个区域是栈区(局部变量),堆区(动态内存),静态区(全局变量) 7、如果想要得到浮点数的结果,两个运算数必须至少一个是浮点数 例如
代码语言:javascript复制float x=6.0/4;
8、printf是默认右对齐,如果想要左对齐,可以printf(“%-5d”,n)。其中5的意思是限制最小的位置是存放5个,但是超过了也没有问题。 9、
代码语言:javascript复制scanf("%d",&x);
scanf("%f",&y);
//此时如果输入一个“-13.45e12#0”
scanf("%d%f",&x,&y);
此时,因为遇到了==.==,所以x,是-13.而y是,0.45e12。 10、scanf返回值是表示成功的读取的变量的个数,没有读取到的话时返回0,在读取到之前发生错误的话,会返回EOF(-1)。 11、除了%c之外,都会自动忽略起首的空白字符,如果想要强行跳过的话,可以写成
代码语言:javascript复制scanf(" %c",&a)//也就是在%c之前加上空格
12、如果为了避免,输入的时候,会有很多不同的方式,可以用这个来解决
代码语言:javascript复制scanf("%d%*c%d%*c%d",x,y,z);
这种情况,就是为了,防止在输入日期的时候,会造成不同。