字符串简介
- 双引号仅告知编译器它括起来的是字符串,正如单引号用于标识单个字符一样。
- 字符串都被储存在char类型的数组中。
注意数组末尾位置的字符\0。这是空字符(null character),C语言用它标记字符串的结束。 - 字符串和字符
字符串常量"x"和字符常量’x’不同。区别之一在于’x’是基本类型(char),而"x"是派生类型(char数组);区别之二是"x"实际上由两个字符组成:'x’和空字符\0
strlen()和sizeof
char name[40];
scanf("%s",name);
printf("Your name of %zd letters occupies %zd memory cells.\n",strlen(name), sizeof name);
- sizeof运算符报告,name数组有40个存储单元。
- 只有前11个单元用来储存Serendipity,所以strlen()得出的结果是11。name数组的第12个单元储存空字符,strlen()并未将其计入。
常量和C预处理器
#define TAXRATE 0.015
编译程序时,程序中所有的TAXRATE都会被替换成0.015。这一过程被称为编译时替换(compile-time substitution)
const限定符
const关键字,用于限定一个变量为只读
const int MONTHS = 12;
明示常量
C头文件limits.h和float.h分别提供了与整数类型和浮点类型大小限制相关的详细信息。每个头文件都定义了一系列供实现使用的明示常量。 limits.h头文件包含以下类似的代码:
#define INT_MAX +32767
#define INT_MIN -32768
这些明示常量代表int类型可表示的最大值和最小值。
printf()和scanf()
##转换说明(conversion specification)
printf()
printf()的转换说明修饰符
- 转换说明的意义
转换说明把以二进制格式储存在计算机中的值转换成一系列字符(字符串)以便于显示。 实际上,转换说明是翻译说明,%d的意思是“把给定的值翻译成十进制整数文本并打印出来”。
scanf()转换说明
scanf()如何读取输入
scanf("%d,%d", &n, &m);
scanf()函数将其解释成:用户将输入一个数字、一个逗号,然后再输入一个数字。也就是说,用户必须像下面这样进行输入两个整数:88,121
- 注意
对于scanf(),一定要记得在变量名前加上地址运算符(&)。
|