字符不是文字,字符是整数
在C语言中,字符是被当作整数来处理的。每个字符都对应一个整数值,称为ASCII码或Unicode码。所以,字符变量的声明和定义可以像整数一样:
char c = ‘A’, d = 65;
字符A
的ASCII码值为65,所以我们可以用65来定义字符变量d
。
字符输出
我们可以用%c
格式指定符将字符变量以字符形式输出:
printf("%c,%d\n", c, c); // A,65
printf("%c,%d\n", d, d); // A,65
用%d
格式指定符将字符变量以整数形式输出,结果是相同的。因为字符变量本质上就是代表字符的整数。
我们也可以用putchar()
函数直接将字符输出:
putchar©; // A
putchar(d); // A
putchar()是专门用于字符输出的函数。printf()
的使用更加灵活和全面。
字符运算
既然字符是整数,那就可以对字符做整数的运算:
char m = ‘B’;
char n = m + 1; // n = ‘C’
char x = m - 2; // x = ‘A’
这就是可以通过整数运算来得到前后相邻的或相隔一定位置的字符。
字符转义序列
在C语言中,一些特殊字符需要用转义序列来表示,如:
- \n 换行符
- \t 制表符
- \ 反斜杠
- ’ 单引号
- " 双引号
- \0 字符串结束符
例如:
printf(“Hello\nWorld”);
这会输出:
Hello
World
字符转义序列使我们可以方便地在字符串中表示特殊字符。
综上,C语言把字符看作整数来处理,这使得字符 variables 同时具有字符与整数的性质,我们可以方便地进行字符输出、整数运算和字符串处理。但是需要注意,字符并不等同于文字,它代表的是一个符号。