天天看点

c语言在函数中使用sizeof求数组长度

c语言sizeof的重要用途之一就是求数组长度,但是sizeof必须在数组定义的位置使用。不能作为参数传入函数并在函数中使用sizeof;

比如下边这个例子

c语言在函数中使用sizeof求数组长度

函数中打印结果为;

c语言在函数中使用sizeof求数组长度

 数组的长度应该是5但是结果却是2,这是为什么呢?因为在函数里边,a只是作为一个指针,而不是a【】一整个数组,运行时编译器不知道以a表示的地址有多大。sizeof(a)只是一个指针的大小。

尝试如下:

c语言在函数中使用sizeof求数组长度

结果为

c语言在函数中使用sizeof求数组长度

而如果sizeof用在定义数组阶段就没事;

c语言在函数中使用sizeof求数组长度

结果为

c语言在函数中使用sizeof求数组长度

继续阅读