#include <iostream>
void foo(char (&p)[10]) {
printf("%d\n", sizeof(p));
}
char p[10] = "aaa";
int main() {
foo(p);
}
该代码输出10
,但我无法理解。
这里的char (&p)[10]
是什么意思?
最佳答案
foo()
被声明为一个函数,专门获取对大小为 10
的 char
数组的引用,没有任何 array-to - 发生指针转换。
由于 sizeof(char)
为 1,因此 sizeof(char[10])
为 10。这就是您的程序打印 10 的原因。
关于c++ - 如何理解 foo(char (&p)[10]) ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35063454/