gpt4 book ai didi

c++ - 结合字符串和字符的大小

转载 作者:行者123 更新时间:2023-12-01 14:03:48 24 4
gpt4 key购买 nike

最后 2 个 cout 语句具有相同的大小。为什么?

int main() 
{
char ch=127;
cout<<sizeof(ch)<<endl; //Size=1
cout<<sizeof("Hello")<<endl; //Size=6
cout<<sizeof("Hello"+ch)<<endl; //Size=8
cout<<sizeof("HelloWorld"+ch)<<endl; //Size=8
return 0;
}

请解释。
谢谢

最佳答案

当您这样做时"Hello"+ch包含字符串 "Hello" 的数组衰减到指向其第一个元素的指针,然后添加 ch到这个指针。

指针运算的结果是一个指针,这就是你得到的大小。

等效代码将类似于

char const hello[] = "Hello";
char const* phello = hello; // equivalent to &hello[0]
char const* result = phello + ch;
cout << sizeof(result) << endl;

关于c++ - 结合字符串和字符的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60297460/

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