在使用数据时,一般首先先初始化一下数组,大多数时候,直接清零就可以了,在用memset清空时,要获取其大小,怎么其取大小呢,直接size(数据名),这样可以吗?
理论上:
sizeof是编译时运算符,其只能获取编译时确定大小的东西,其操作对象可以是类型,也可以是对象,数组的sizeof值等于数组所占用的内存字节数
理论上是可以的
验证一下:
root@mkx:~/workspace/learn# gcc arrSize.c -o arrSize
root@mkx:~/workspace/learn# ./arrSize
sizeof(a)=80
sizeof{A)=8
root@mkx:~/workspace/learn# cat arrSize.c
#include <stdio.h>
typedef struct _a{
int c;
int d;
} A;
int main()
{
A a[10];
printf("sizeof(a)=%ld\r\n", sizeof(a));
printf("sizeof{A)=%ld\r\n", sizeof(A));
}
通过验证可知,是可以,但注意如果数组作为形参的话,只能获取指针的大小,因为形参是动态传递的,编译时不能确定。