如题所述
因为宏是一个简单替换,所以c语言中用宏定义一个字符常量(一个字母)可以赋值给字符变量。实质是在编译之前会把宏替换掉,然后再编译。
例如:
#define A 5
void main()
{
int num=A;
} 在编译之前A已经被替换成5了,所以就可以赋值给num。
例如:
#define A 5
void main()
{
int num=A;
} 在编译之前A已经被替换成5了,所以就可以赋值给num。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-03-27
字符常量是用单括号括起来的一个字符。
有两种表示方法:
一种是用该字符的图形符号,如'b'
,'y','*'。
另外还可以用字符的ascii码表示,即用反斜符(\)开头,后跟字符的ascii码,这种方法也称为转义序列表示法,具体方法是:有两种形式:
一种是用字符的八进制ascii码,表示为:\ddd这里,ddd是八进制值。
另一种使用字符的十六进制ascii码值,表示为
\xhh
这里hh是两位十六进制值。
如:'a'
,'\101'
和
'x41'都表示同一个字符常量。
转义序列表示法还可以用来表示一些特殊字符,用来显示特殊符号或控制输出格式。
下面是常用的特殊转义字符。
有两种表示方法:
一种是用该字符的图形符号,如'b'
,'y','*'。
另外还可以用字符的ascii码表示,即用反斜符(\)开头,后跟字符的ascii码,这种方法也称为转义序列表示法,具体方法是:有两种形式:
一种是用字符的八进制ascii码,表示为:\ddd这里,ddd是八进制值。
另一种使用字符的十六进制ascii码值,表示为
\xhh
这里hh是两位十六进制值。
如:'a'
,'\101'
和
'x41'都表示同一个字符常量。
转义序列表示法还可以用来表示一些特殊字符,用来显示特殊符号或控制输出格式。
下面是常用的特殊转义字符。
第2个回答 2019-10-08
汉字根据编码方式不同,所占的大小2~4个字节不等,汉字赋值给字符变量,只显示第一个字节,出问号就不奇怪了
用汉字赋值给字符数数组然后在显示的话,一定要考虑编码方式问题,你的终端支持哪种就选择哪种,否则乱码
用汉字赋值给字符数数组然后在显示的话,一定要考虑编码方式问题,你的终端支持哪种就选择哪种,否则乱码