心血來潮試了試,給一個字符賦多個字母回如何?
#include<stdio.h>
#include<stdlib.h>
int main(){
char a = 'a';
char b = 'abcd';
char c = 'abcde';
printf("%c\n", a);
printf("%c\n", b);
printf("%c\n", c);
system("pause");
return 0;
}
這個程序是有錯誤的,錯誤在於
char c = 'abcde'; //常量中字符太多
但是,
char b=‘abcd’;
是正確的,並且能輸出,但要注意的是它只能輸出最後的字母‘d’。
爲何char能接受四個字符呢?
主要問題在於轉義符上:
看最後兩個 \ddd \xhh
也就是說:char 能接收四個字符就是爲這兩個準備的
#include<stdio.h>
#include<stdlib.h>
int main(){
char a = 'a';
char b = '\141'; //八進制轉化對應的ASCII表
char c = '\x61';//16進制對應的ASCII表
printf("%c\n", a); //a
printf("%c\n", b); //a
printf("%c\n", c); //a
system("pause");
return 0;
}
這三種對 char 的賦值都是正確的,在c語言中char大小隻有1字節,這點是固定的。故就不存在輸入多個字符的情況,轉義符也不過是特殊的轉換成一個字符。
在其他環境下,這樣寫是會報錯的,這是一種錯誤寫法。