1. 字符串(charcacter string)是一个或多个字符的序列
2. C语言没有专门用于存储字符串的变量类型。字符串都被存储在char类型的数组种。
3. 数组由连续的存储单元组成,字符串种的字符被存储在相邻的存储单元中, 每个单元存储一个字符。结尾会
4. 声明一个char变量和声明一个char数组
5. 使用字符串。 下面的示例程序中我们可以看到:
a. 字符串 "yeyeck" 被存储在一个长度为40的char数组中 char name[40];
b. sizeof(name) = 40 输出的是声明时char数组的大小。
c. strlen(name) = 6 输出的时实际上“yeyeck”所占用的大小
另外, scanf() 方法只会读取第一个单词。fgets() 用于读取一般的字符串
#include <string.h> //提供strlen() 函数原型 #define DENSITY 62.4 // 人体密度 (单位: 磅/立方英尺) int main() { float weight, volume; int size, letters; char name[40]; //声明一个可容纳40个字符的数组 printf("Hi! What's your first name?\n"); scanf("%s", name); printf("%s, what's your weight in pounds?\n", name); scanf("%f", &weight); size = sizeof(name); letters = strlen(name); volume = weight / DENSITY; printf("Well, %s, your volume is %2.2f cubic feet.\n", name, volume); printf("Also, your first name has %d letters,\n", letters); printf("and we have %d bytes to store it.\n", size); return 0; } /* output: Hi! What's your first name? yeyeck yeyeck, what's your weight in pounds? 100 Well, yeyeck, your volume is 1.60 cubic feet. Also, your first name has 6 letters, and we have 40 bytes to store it. */
3. 字符串常量和字符常量的区别。字符串末尾会跟一个空字符\0
4. 常量和预处理器。在程序中经常要使用到常量。比如说圆周率 Π。
a. 我们可以在程序中声明变量 float pi = 3.14159
b. 如果我们这样使用,因为 pi 是一个变量,在写代码的过程中如果不注意,可能会修改 pi 的值。 比如不小心写了一行代码 pi=31.456. 这是我们不想要的结果。
c. 使用C预处理器, 在程序顶部添加一行代码
#define PI 3.14159
在编译程序时,程序中所有的 PI 会被替换成3.14159。这一过程被称为 编译时替换。
通用格式为 # define NAME value。
预处理的过程如下图
d. 使用const限定符(C90)。 const float PI = 3.14159;
这表明 PI 为一个只读常量。 不允许更改
5. printf 输出格式