c语言中‘z+4’所代表的ASCII码为多少

我变成时候需要用‘z’+4,我写成了‘z+4’,但是所得的结果却不正确,它俩所代表的不一样吗,那么‘z+4’所代表什么呢
2026年09月23日 11:03
有4个网友回答
网友(1):

'0'=0x30
'1'=0x31
'2'=0x32
'3'=0x33
'4'=0x34
'z'=0x7A
'+'=0x2B

在VC6.0下测试,结果很有意思
int m='01';//m=0x3031
int m='012';//m=0x303132
int m='0+1';//m=0x302B31
int m='z+4';//m=0x7A2B34

但是如果定义int m='12345',就会报错“error C2015: too many characters in constant”。

从以上可以看出,形如int m=‘ABCD';这样的格式(注意是单引号,不是双引号,双引号就是字符串了),VC6.0的编译器会把单引号括起来的部分当常量来处理的,其值m='A'<<24+'B'<<16+'C'<<8+'D';

网友(2):

'z+4'是字符串

'z'+4是两者的ascii码相加

网友(3):

z是122
z+4 = 126

char a = 'z+4'不是字符串,编译器把它看作是一个整型,a的ascII码是52

char a = ‘b+4’ascII码也是52,char a = ‘b+5’ascII是53。

网友(4):

‘z’+4 代表 ~ (~的aciss是126, z的是122)
‘z+4’ 代表 4 (依次覆盖前面一个字符 所以就是最后一个字符,这个可以算是C里面的一个常识。。。对C了解深入一点点的人应该都知道的。。。)