cout<<sizeof(str)<<endl;这句输出真的是8
时间: 2024-06-13 11:07:22 浏览: 8
根据提供的代码,输出结果可能不是8。因为`sizeof`操作符返回的是数据类型或变量所占用的字节数,而不是字符串的长度。因此,输出结果取决于`str`的数据类型。如果`str`是一个指向字符数组的指针,则输出结果为指针所占用的字节数,通常为4或8个字节,具体取决于操作系统和编译器。如果`str`是一个`std::string`对象,则输出结果为该对象所占用的字节数,通常为16个字节,具体取决于编译器和实现。
相关问题
在windows下,写出运行打印结果。 #include <iostream.h> #include <string.h> void func(char str[100]) { } void main(void) { char str[ ]= “Hello”; char *p=str; int n=10; cout<<sizeof(str)<<endl; cout<<sizeof(p)<<endl; cout<<sizeof(n)<<endl; cout<<sizeof(func)<<endl; return; }
在 Windows 系统下运行这段代码将会得到以下的输出结果:
100
4
4
1
让我解释一下代码的执行过程:
首先,我们包含了 `<iostream.h>` 和 `<string.h>` 头文件。
然后,我们定义了一个函数 `func`,接受一个长度为100的字符数组作为参数。
接下来,在 `main` 函数中,我们声明了一个名为 `str` 的字符数组,并初始化为 "Hello"。
然后,我们声明了一个指向字符的指针变量 `p`,并将其指向 `str`。
接着,我们声明了一个整型变量 `n`,并赋值为 10。
接下来,我们使用 `sizeof` 运算符来输出不同变量的大小。
- `sizeof(str)` 输出的是 `str` 数组的大小,即100个字符(每个字符占1字节),所以输出结果为 100。
- `sizeof(p)` 输出的是指针变量 `p` 的大小,在32位系统下,指针占用4个字节,所以输出结果为 4。
- `sizeof(n)` 输出的是整型变量 `n` 的大小,整型变量在32位系统下占用4个字节,所以输出结果为 4。
- `sizeof(func)` 输出的是函数 `func` 的大小,函数不占用任何存储空间,所以输出结果为 1(实际上在某些编译器中可能会输出其他值)。
最后,我们使用 `cout` 对象来输出上述结果。
因此,代码的输出结果为:
100
4
4
1
为什么该代码输出结果为8;void Func(char str[100]){ cout<<sizeof(str)<<endl;
该代码输出结果为8,是因为在函数中传递的字符数组实际上是一个指针,指向数组的第一个元素。因此,sizeof(str)返回的是指针的大小,通常为8个字节(64位系统)。即使数组的大小为100,但在函数中传递时,它被视为一个指向字符的指针,因此sizeof(str)返回的是指针的大小,而不是数组的大小。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)