C PRIMER PLUS总结(一)

第3章 数据和C

1 %f指示scanf()从键盘读取一个浮点数;

2 %o:八进制打印

   %x:十六进制打印

3 short不会比int长,long不会比int短;目前一般情况是long long占64位,long占32位,short占16位,int占16位或者32位

4 %lx:以十六进制打印长整数,%ox:以八进制打印长整数

5 通常使用一个32位存储浮点数,其中8位用于表示指数及其符号,24位用于表示非指数部分(称为尾数或有效数字)及其符号

6 %e:将某数以指数计数法形式打印出来或者输入


第4章 字符串和格式化输入输出

1 scanf()遇到空格,制表符,换行符会停止读取字符(如需要遇到空格,制表符,换行不停止读取,可以用gets());除了在%c模式(它会读取下一个字符)下外,在读取输入时,scanf()会跳过空白字符(制表符,空格和换行符)直到第一个非空白字符处。然后它会一直读取字符,直到遇到空白字符,或者遇到一个不符合正在读取的类型的字符。

2 使用sizeof的时候是否使用括号取决于是想获得一个类型的大小还是某个具体量的大小,若是需要获得某个类型的大小,则需要使用括号,如sizeof(int),若是需要获得某个具体量的大小,则可以不使用括号,如sizeof 6541;但还是建议用sizeof(6541);

3 strlen()计算摸个字符串长度时不会将字符串末尾的结束字符算计去,但sizeof会将结束字符计算进去


第5章 运算符 表达式和语句

1 当出现在表达式里时,有符号和无符号的char和short类型都将自动被转换成int,在需要的情况下,将自动被转换为unsigned int(如果short与int有相同的大小,那么unsigned short比int大;在那种情况下,将把unsigned short转换为unsigned int).

2 在包含两种数据类型的任何运算里,两个值都被转换成两种类型里较高的级别

3 类型级别从高到低:long double > double > float > unsigned long long > long long > unsigned long > long > unsigned int > int

4 当作为函数的参数被传递时,char和short会被转换成int,float会被转换成double

1. scanf 函数是有返回值的,它的返回值可以分成三种情况
  1) 正整数,表示正确输入参数的个数。例如执行 scanf("%d %d", &a, &b);
      如果用户输入"3 4",可以正确输入,返回2(正确输入了两个变量);
      如果用户输入"3,4",可以正确输入a,无法输入b,返回1(正确输入了一个变量)。
  2) 0,表示用户的输入不匹配,无法正确输入任何值。如上例,用户如果输入",3 4",返回0。
  3) EOF,这是在stdio.h里面定义的常量(通常值为-1),表示输入流已经结束。在Windows下,用户按下CTRL+Z(会看到一个^Z字符)再按下回车(可能需要重复2次),就表示输入结束;Linux/Unix下使用CTRL+D表示输入结束。


2 顺便说一下,printf的返回值是输出的字符数,例如,printf("1234")的返回值是4,而printf("1234\n")的返回值是5。

你可能感兴趣的:(C语言)