gpt4 book ai didi

c++ - 带维度的数组参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:44:57 24 4
gpt4 key购买 nike

为什么即使我给出完整维度,数组的大小也只是指针之一?这也要腐烂吗?

#include <iostream>
using namespace std;

void function(char* arr[1][2]){
cout << sizeof(arr); // 4
}

int main() {
char* params2d[1][2] = { {"hello", "world"} };
cout << sizeof(params2d); // 8
function(params2d);
return 0;
}

最佳答案

所有的函数声明

void function(char* arr[1][2]);
void function(char* arr[][2]);
void function(char* (*arr)[2]);

是一样的。在多维数组的情况下,可以省略第一维。所以,无论你写

void function(char* arr[1][2]);  

void function(char* arr[10][2]);  

编译器将其转换为

void function(char* (*arr)[2]);

关于c++ - 带维度的数组参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24205673/

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