C Primer Plus(5)
1、如果把字符串中的字符放入数组中,需要先创建一个数组,还要在末尾加\0。
2、 字符串常量“X”和字符常量‘X’不同,区别之一再与‘X’是基本类型(char),而“X”是派生类型(char数组);区别之二是“X”实际上由两个字符组成:‘X’和空字符\0.3、字符串是以空字符结尾的。
3、字符串是以空字符结尾的。Strlen()函数可用于获得字符串的长度(末尾的空字符不计算在内)。
4、Sizeof运算符以字节为单位返回类型或值的大小,在何时使用圆括号取决于运算对象是类型还是特定量,当运算对象是类型时,圆括号必不可少,但是对于特定量,可有可无。尽管如此,建议所有情况下都用圆括号。
5、#define指令可以创建明示常量。在使用常量时,可以用C预处理#define先声明一个变量,然后将该变量设置为所需的常量,通用格式为#define NAME value 末尾不加分号,变量名大写。另外#define还可以定义字符和字符串常量。
6、Const限定符,声明的是变量而不是常量。
7、 请求printf()函数打印数据指令要与待打印数据的类型相匹配。例如打印整数时使用%d,打印字符时使用%c。printf()的返回值可以作为赋给变量,也可以用于计算,也可以作为参数传递。
8、scanf()输入函数,用来读取不同格式的数据。使用scanf()读取基本变量类型的值,在变量名前加上一个&,如果是把字符串读入字符数组中,不要使用&。scanf()函数中的转换说明是%s时,可读取一个单词。
9、 课后习题7:#include <stdio.h> #include <float.h> int main(void) { float ot_f = 1.0 / 3.0; double ot_d = 1.0 / 3.0; printf(" float values: "); printf("%.4f %.12f %.16f\n", ot_f, ot_f, ot_f); printf("double values: "); printf("%.4f %.12f %.16f\n", ot_d, ot_d, ot_d); printf("FLT_DIG: %d\n", FLT_DIG); printf("DBL_DIG: %d\n", DBL_DIG); return 0; }
10、课后习题8:
#include <stdio.h> #include <string.h> #define GALLON 3.785 //1 gallon = 3.785 L #define MILE 1.609 //1 mile = 1.609 km int main() { system("color 0A"); float mile; //里程数 float gallon; //汽油量 printf("\n\tPlease enter the mileage of the trip:\n"); printf("\t请输入旅行的里程km:"); scanf("\t%f",&mile); printf("\n\tPlease enter the amount of petrol you need to consume:\n"); printf("\t请输入消耗的汽油量L:"); scanf("\t%f",&gallon); printf("\n\tThe oil consumption is %.1f mile /gallon\n",mile / gallon); printf("\t油耗为%.1f英里/加仑\n",mile / gallon); printf("\n\tLitre per 100km:%.1fL\n",gallon*GALLON/(mile*MILE)*100); printf("\t百公里消耗为:%.1f升\n",gallon*GALLON/(mile*MILE)*100); return 0; } 疑问:不明白第二行的输出?空格生成前导空格,为什么这么用,而且加不加这个空格输出结果都一样呀。
#include <stdio.h> int main(void) { printf("%x %X %#x\n", 31, 31, 31); printf("**%d**% d**% d**\n", 42, 42, -42); printf("**%5d**%5.3d**%05d**%05.3d**\n", 6, 6, 6, 6); return 0; }