#include<stdio.h>
int main(){
char array[3][3]={{'2','1','3'},{'4','5','9'}};
array[0][0]='51';
}
错误警告:多字符字符常量 [-Wmultichar] array[0][0]='51'; ^~~~ 17.4.c:6:17:警告:隐式常量转换溢出 [-Woverflow]
#include<stdio.h>
int main(){
char array[3][3]={{'2','1','3'},{'4','5','9'}};
array[0][0]='51';
}
错误警告:多字符字符常量 [-Wmultichar] array[0][0]='51'; ^~~~ 17.4.c:6:17:警告:隐式常量转换溢出 [-Woverflow]
如果您想在一个字符中存储两个十进制数字,您实际上可以使用 4 位半字节来存储数字
int two_to_one(const char *number)
{
return *number - '0' + ((*(number + 1) - '0') << 4);
}
char *char one_to_two(int ch, char *buff)
{
buff[1] = ch >> 4;
buff[0] = ch & 0xf;
buff[2] = 0;
return buff;
}
如果您想使用多字符常量,您可以将它们存储在大于字符的整数变量中。例如,这有效- 以某种方式,意味着它存储了一个多字符:
int x = '52';
Char 只能持有一个符号。“51”是两个符号。如果你将它写在双括号(“51”)之间,它可能是三个,因为 C 类型的字符串总是以\0
. 要保存多个符号,您应该使用 char 指针和双括号或使用一维以不同方式访问它们:
char* array[3] = {"one", "two", "three"};
char string[3][7] = {"one", "two", "three"};
第二行表示\0
可以使用最多包含 7 个字符(包括 )的 3 个字符串。我选择了这样一个数字,因为“三”由 6 个符号组成。