首页 > 试题广场 >

在64位操作系统下,下列程序的输出结果为()#include

[单选题]
在64位操作系统下,下列程序的输出结果为()
#include<iostream>
using namespace std;
{
const char* str = "name hello";
printf("%d %d\n", sizeof(str), strlen(str));
return 0;
}

  • 8  10    
  • 8  4
  • 4   10
  • 4   4
sizeof(str)输出的是指针的大小,不管什么指针(无论是char*还是int*还是自定义的类型A的A*),大小都是一样的,在32位下是4位,在64位下是8位。
发表于 2021-08-02 11:38:22 回复(0)
strlen() 包含'\0'
发表于 2021-10-19 13:46:56 回复(1)
答案是4,10不是8,10
发表于 2021-07-08 22:52:14 回复(3)
`sizeof` 是关键字,`strlen` 是头文件 <cstring> 中的函数,关于它们的区别,给出下面的例子。

```c++
char arr[10] = "hello";
cout << strlen(arr) << endl;           // 5
cout << sizeof(arr) << endl;          // 10

const char *arr = "hello";
cout << strlen(arr) << endl;         // 5
cout << sizeof(arr) << endl;        // 8    64位系统下指针大小
```
发表于 2022-09-09 16:56:03 回复(0)
指针大小在64位系统下为8字节
发表于 2021-12-20 17:13:47 回复(0)
这是什么原因?
发表于 2021-08-05 10:27:34 回复(1)
32位系统指针是4字节,64位则为8字节
发表于 2021-07-14 14:59:33 回复(0)