C++字符char问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 20:39:47
cout<<"字符 \'a\' 所占字节数: "<<sizeof('a')<<endl;
我改成sizeof('ab')<<或者sizeof('abc')后,为什么输出结果是4?

sizeof('ab'),sizeof('abc')相当于一个整型int占用4个字节。

字符后要带、0的,所以要多算一个。。。

sizeof()函数,里面括号里是类型名 比如int char long short,不能是字符串名

sizeof('ab') 返回的是个指针 故4byte

1.在Windows环境下单个字符有两种形式,1)单个字符 2)双字符。
比如'a'和'ab'实际上都是合法的char。只不过后者很少用到。'ab'在有的编译器上被视为整形。

2.'abc'不是字符串,字符串是双引号。这种表示既不是字符也不是字符串,它是非法的。在程序编译的时候会发生截断。至少编译器会给出一个warning.这种时候也被视为整形。

因此两者都被视为整型,因此输出4.另外'a'被视为char,被视为1.