江南侠客(上海)

江南侠客(上海)

字符不是文字,字符是整数

在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 同时具有字符与整数的性质,我们可以方便地进行字符输出、整数运算和字符串处理。但是需要注意,字符并不等同于文字,它代表的是一个符号。

05-14 15:25