面试题答案
一键面试- 对于
char ch = 'a';
sizeof(ch)
的结果是1。- 原因:
ch
是一个char
类型的变量,在C++中,char
类型通常占用1个字节的内存空间,sizeof
运算符返回的是操作数所占用的字节数,所以sizeof(ch)
为1。
- 对于
const char* str = "abc";
sizeof(str)
的结果在32位系统下通常是4,在64位系统下通常是8。- 原因:
str
是一个指向字符串常量的指针,sizeof
作用于指针时,返回的是指针本身所占用的字节数。在32位系统中,指针通常占用4个字节来存储内存地址;在64位系统中,指针通常占用8个字节来存储内存地址。而字符串常量"abc"本身占用4个字节(包括字符串结束符\0
),但sizeof(str)
测量的是指针的大小,并非指针所指向的字符串的大小。