gpt4 book ai didi

c - 为什么要在函数头中声明 C 数组参数的大小?

转载 作者:太空狗 更新时间:2023-10-29 16:30:30 25 4
gpt4 key购买 nike

谁能告诉我为什么我要费心在函数头中指定 C 数组参数的大小?例如:

void foo (int iz[6]) { iz[42] = 43; }

与:

int is[2] = {1,2,3};

我们得到一个有用的错误。也许它有助于评论/文档?

最佳答案

Can anyone enlighten me as to why I should bother to specify the size of a C array argument in a function header? For example:

void foo (const char sz[6]) { sz[42] = 43; }

IMO,你不应该。当您尝试将数组传递给函数时,真正传递的是指向数组开头的指针。由于函数接收的是一个指针,因此最好将其编写为明确:

void foo(char const *sz)

然后,由于现在很明显函数没有给出大小的线索,将其添加为一个单独的参数:

void foo(char const *sz, size_t size)

关于c - 为什么要在函数头中声明 C 数组参数的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5187224/

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