资源描述:
《c语言阅读笔记新new》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、注意,scanf函数中,地址表列要带地址运算符,并且格式控制里面不要加’’这个转义字符,否则会被作为另一个变量类型。跟c51相同的是浮点型数据只有字符型。把常量和变量分为不同的类型是因为必须确定所分配的存储单位多少字节,按什么方式存储。字符串的表示不是单撇而是双撇。各种字符集包括ASCⅡ字符集的基本集都包括了127个字符,所以字符型数据用一个字节其中的7位就足够存储了。几种常见运算符之间的优先级,先算术,再比较关系,后赋值.在逻辑表达式中,如果能仅凭开始部分的运算就得出结果的话就不会进行后面部分的运算.条件运算符由两个符号”
2、?”,”:”组成,是c中唯一一个三目运算符。熟练运用表达式语句能够大大简化控制语句。所以尽量不要用控制语句。而应该多用表达式语句特别是逻辑表达式语句。例如同时满足多个条件的可以用逻辑表达式处理。表达式中没有语句。函数调用可以作为语句也可以作为表达式的一部分。条件表达式中也可以嵌套,如x<0?printf("y=-1"):x>0?printf("y=1"):printf("y=0");注意这里表达式作为了一句语句。但是在有很多条件的情况下,建议使用if跟else的嵌套。所构造的函数中,参数表列中有定义了参数,就不需要在
3、局部变量声明。一般没有需要将键入的字符输出时不需要加换行停止语句即if(getchar()==‘’);对于对字符进行处理的函数中要特别注意换行符。Switch后面括号中的表达式的值应为整数类型包括字符型,不能是浮点型。有一个bug,如果你在一个循环程序中用一个类型控制之间以空格隔开的scanf函数的话,将会不断存储不断执行下面的程序。特别注意,赋值时的数据类型转换跟输入输出函数里的类型变化不一样。用scanf函数的时候,录入的数据类型应该跟所定义的类型一样,用printf函数时的类型变化比较容易用于整数类型的如字符型跟整型之
4、间的类型变化输出,但是用于整形和浮点型之间就容易错误。而通过赋值表达式的类型转化能够有效输出输入,即使用输入输出函数时要注意输入输出表列里的类型应与格式控制里的类型匹配,不能够作变换类型输入输出。格式要力求准确,否则容易出错,该加的花括号一定要加.如果一个运算过程由两步相承接,但是不能把两步和在一起的话,就可以考虑使用逗号表达式语句.没有赋初值的变量可能会导致程序出错.只有对调才需要用到第三只杯.对于达到某一条件便可结束判断的可以使用break语句,节省工作时间,提高CPU效率.计算机在执行运算时把各种数据类型都转化为doubl
5、e型进行运算后再根据用户定义的类型赋值。注意不要将putchar的参数搞错成printf的,否则不能输出字符。一维数组三元素:元素类型数组名【元素个数(常量表达式)】。注意printf函数输出换行符是printf(“”);,即是说输出字符不需要加单引号,这一点转义字符也不例外。如果为可变数组动态赋值就不需初始化。特别注意数组的动静态定义和动静态初始化。看这个程序#includevoidmain(){inti,j,k,bot;inta[10];printf("pleaseenter10number:");
6、for(i=0;i<10;i++){scanf("%d",&a[i]);if(getchar()==''){while(i<10){a[i+1]=0;i++;}}//else}printf("");for(j=0;j<9;j++)for(i=0;i<9-j;i++){if(a[i]>=a[i+1]){bot=a[i];a[i]=a[i+1];a[i+1]=bot;}}printf("升序为:");for(i=0;i<10;i++){printf("%-5d",a[i]);}}当程序变为#include7、>voidmain(){inti,j,k,bot;inta[10];printf("pleaseenter10number:");for(i=0;i<10;i++){if(getchar()==''){while(i<10){a[i]=0;i++;}}elsescanf("%d",&a[i]);}printf("");for(j=0;j<9;j++)for(i=0;i<9-j;i++){if(a[i]>=a[i+1]){bot=a[i];a[i]=a[i+1];a[i+1]=bot;}}printf("升序为:"
8、);for(i=0;i<10;i++){printf("%-5d",a[i]);}}此时读不到第一个输入的数,在输入第一数之前加个空格即可读出。请思考。给出可能解释,之所以读不到第一个数是因为输入的第一个字符用于判断if(getchar()==''),然后输