C语言02
常量
字面常量
直接写出的值,如:2、3.14、1.2234等
const修饰的常变量
具备常属性的变量(本质上是个变量),只能在定义时修改其值。
const int n = 10;
int arr[n] = {0};
#define 定义的标识符常量
标识符常量,用符号代替的常量。(本质上是常量,只是为了方便书写而用符号代替常量。)
#define N 10
...
int arr[N] = {0};
枚举常量
用来表示可以一一列举出来的常量(有值),如性别:男、女、保密 三原色:红、黄、蓝等。
枚举关键字:enum
enum Sex
{
male,
female,
secret
};
int main()
{
enum Sex Zhangsan = male;
printf("%d",Zhangsan);
return 0;
}
字符串和转义字符
字符串
字符串就是由双引号引起来的一串字符,字符数组是由字符元素组成的数组。字符串可以存放在字符数组中,但要注意字符串存储在数组中时,系统会在数组中字符串结尾加上‘ \0 ’作为字符串结束的标志,(‘ \0 ’只是字符串结束的标志,不是字符串内容,即此时统计数组中元素的个数或输出字符数组中元素时不包括‘ \0 ’)。
char arr1[] = "abc";
char arr2[] = {'a', 'b', 'c'};
printf("%d\n", strlen(arr1));
printf("%d\n", strlen(arr2));
printf("%s\n", arr1);
printf("%s\n", arr2);
char arr1[] = "abc";
char arr2[] = {'a', 'b', 'c',0};
printf("%d\n", strlen(arr1));
printf("%d\n", strlen(arr2));
printf("%s\n", arr1);
printf("%s\n", arr2);
转义字符
如:’ \0 ‘是空字符,常用作字符串结束的标志 , ’ \n ‘作用是换行
转义字符 | 意义 |
---|
\a | 响铃(BEL) | \b | 退格(BS) ,将当前位置移到前一列 | \f | 换页(FF),将当前位置移到下页开头 | \n | 换行(LF) ,将当前位置移到下一行开头 | \r | 回车(CR) ,将当前位置移到本行开头 | \t | 水平制表(HT) | \v | 垂直制表(VT) | \’ | 表示单引号 ’ | \" | 表示双引号 ‘’ | \\ | 表示反斜杠 \ | \ddd | ddd表示1~3个八进制数字,\ddd表示ddd转化为十进制数值后ASCII码表中所对应的转义字符 如\130表示字符’ X ’ | \xdd | dd表示2个十六进制数字,\xdd表示dd转化为十进制数值后ASCII码表中所对应的转义字符 如\x58也表示字符’ X ’ |
- 思考:如何用printf输出单引号,双引号?(正常编写代码时单双引号以及一些带有反斜杠的符号总会被解析成语法成分或转义字符,而不是被解析成字符。为了避免编译器错误解析,需在所输出的字符前加上反斜杠’ \ '来防止字符被解析成语法成分或转义字符)
printf("%c\n", '\'');
printf("%c\n", '\"');
printf("%s\n", "'");
printf("%s\n", "\"");
printf("c:\\test\\test.c\n");
- 在计算字符数组长度或输出字符数组时,转义字符整体算作一个字符,并起着特殊的作用。
printf("%d\n", strlen("c:\test\328\test.c"));
printf("c:\test\328\test.c");
编译器不同,同一个\xdd或\ddd输出的结果会存在差异。
|