一个关于sizeof的问题
- C/C++ code
void check(char data[]){ cout<<sizeof(data)<<endl;}void main(){ char data[31]={'A','B','C','D','E',0,0,0,0,'F','G'}; cout<<sizeof(data)<<endl; //输出31 check(data); //输出4}为什么输出的两个值会不一样?
对于数组作为函数实参的传值方式不是很了解,有人能解释下吗?
困惑ING……
[解决办法]
第一个sizeof一个数组,
第二个sizeof一个指针。
采用值传递,多了一个指针变量指向数组首地址。sizeof该变量就是sizeof该指针。