c语言sizeof的重要用途之一就是求数组长度,但是sizeof必须在数组定义的位置使用。不能作为参数传入函数并在函数中使用sizeof;
比如下边这个例子
函数中打印结果为;
数组的长度应该是5但是结果却是2,这是为什么呢?因为在函数里边,a只是作为一个指针,而不是a【】一整个数组,运行时编译器不知道以a表示的地址有多大。sizeof(a)只是一个指针的大小。
尝试如下:
结果为
而如果sizeof用在定义数组阶段就没事;
结果为
c语言sizeof的重要用途之一就是求数组长度,但是sizeof必须在数组定义的位置使用。不能作为参数传入函数并在函数中使用sizeof;
比如下边这个例子
函数中打印结果为;
数组的长度应该是5但是结果却是2,这是为什么呢?因为在函数里边,a只是作为一个指针,而不是a【】一整个数组,运行时编译器不知道以a表示的地址有多大。sizeof(a)只是一个指针的大小。
尝试如下:
结果为
而如果sizeof用在定义数组阶段就没事;
结果为