關於 char 初始化多個字符問題

心血來潮試了試,給一個字符賦多個字母回如何?

#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字節,這點是固定的。故就不存在輸入多個字符的情況,轉義符也不過是特殊的轉換成一個字符。

在其他環境下,這樣寫是會報錯的,這是一種錯誤寫法。

發佈了42 篇原創文章 · 獲贊 12 · 訪問量 3348
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章