gpt4 book ai didi

C++ 指向字符的指针

转载 作者:行者123 更新时间:2023-11-30 05:19:13 26 4
gpt4 key购买 nike

#include<iostream>

namespace std;

void main(){
char *ch;
char nch;
cout<<"\n"<<sizeof(ch);
cout<<\n"<<sizeof(nch);
cout<<"\n";
return 0;
}

该程序将输出打印为:

8
1

为什么char类型是指针时大小会发生变化?

最佳答案

指针不是它们指向的数据,char *char 不是同一类型。

大多数指针具有相同的大小,并且它通常取决于机器架构,在您的情况下它恰好是 8 个字节,因此您几乎可以期待以下内容:

int* pInt;
char* pChar;
std::cout << (sizeof(pInt) == sizeof(pChar)); // prints 1 for true

另一方面,sizeof(char) 保证返回 1。但这仍然不能保证用于存储它的实际内存量,这很有趣。

如果你想获得指针指向的实际数据的大小,你当然可以取消引用它:

std::cout << sizeof(*ch); // prints 8

关于C++ 指向字符的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41225676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com