1
#include
<
cstdio
>
2
3
using
namespace
std;
4
5
void
seq_to_tree(
char
seq[]) {
6
puts(
"
seq_to_tree:
"
);
7
char
tmp[
20
];
8
printf(
"
sizeof(seq): %d\n
"
,
sizeof
(seq));
9
printf(
"
siezof(tmp): %d\n
"
,
sizeof
(tmp));
10
}
11
12
int
main() {
13
char
seq[
10
];
14
puts(
"
main():
"
);
15
printf(
"
sizeof(seq): %d\n
"
,
sizeof
(seq));
16
seq_to_tree(seq);
17
18
return
0
;
19
}
运行结果:
1
main():
2
sizeof
(seq):
10
3
seq_to_tree:
4
sizeof
(seq):
4
5
siezof(tmp):
20
这一段代码测试了在c/c++中数组类型的形参的sizeof与数组类型的变量sizeof不一样,说明了两个问题:
1. c/c++中数组类型的形参其实传进来就一个指针,而指针通常可以认为是 unsigned int *,那么大小为 4 不足为怪。
2. c/c++中的数组类型或者是struct类型的非基本类型是栈变量。
转载于:https://www.cnblogs.com/nysanier/archive/2011/03/13/1982634.html