gpt4 book ai didi

c++ - C/C++中的数组大小

转载 作者:行者123 更新时间:2023-12-03 07:08:51 27 4
gpt4 key购买 nike

考虑以下代码:

int main(){
int arr[] = {1,2,3,7,8};
int size = sizeof(arr);
cout << size;
}
我知道上面的代码将打印数组的大小,该数组的大小为4 * 5 = 20字节,但是我对此有一个小疑问, arr是指向数组中第一个元素的指针,而ptr变量的大小为4字节,为什么它不能在控制台中打印出4?
即使我们取消引用 arr并打印它,也将打印数组中的第一个元素。
cout << *arr;
那么,这种 sizeof()运算符在数组情况下如何工作?

最佳答案

sizeof(arr)arr不会衰减为指针类型的那些实例之一。
您可以使用一元加号运算符强制指针衰减:

std::size_t/*a better type*/ size = sizeof(+arr);

关于c++ - C/C++中的数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64281889/

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