您的位置:首页 > 编程语言 > C语言/C++

c/c++ 中的 sizeof 运算符和数组类型的变量与形参

2011-03-13 11:29 441 查看
#include <cstdio>

using namespace std;

void seq_to_tree(char seq[]) {
puts("seq_to_tree:");
char tmp[20];
printf("sizeof(seq): %d\n", sizeof(seq));
printf("siezof(tmp): %d\n", sizeof(tmp));
}

int main() {
char seq[10];
puts("main():");
printf("sizeof(seq): %d\n", sizeof(seq));
seq_to_tree(seq);

return 0;
}


运行结果:

main():
sizeof(seq): 10
seq_to_tree:
sizeof(seq): 4
siezof(tmp): 20


这一段代码测试了在c/c++中数组类型的形参的sizeof与数组类型的变量sizeof不一样,说明了两个问题:

1. c/c++中数组类型的形参其实传进来就一个指针,而指针通常可以认为是 unsigned int *,那么大小为 4 不足为怪。

2. c/c++中的数组类型或者是struct类型的非基本类型是栈变量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐