求问memset函数清空数组时用和不用sizeof 有什么区别
为什么有的用对,有的不用直接打数字对
程序代码:
#include <stdio.h> #include <string.h> int main(void) { int a[5], i = 0; int *p = a; while (i < 5) { *p = ++i; printf("%d ", *p++); } puts(""); memset(a, 0, sizeof(a)); for (p = a; p <= &a[4]; p++) printf("%d ", *p); puts(""); for (p = a, i = 0; p <= &a[4]; p++) *p = ++i; for (p = a; p <= &a[4]; p++) printf("%d ", *p); puts(""); memset(a, 0, sizeof(a[0]) * 3); for (p = a; p <= &a[4]; p++) printf("%d ", *p); puts(""); for (p = a, i = 0; p <= &a[4]; p++) *p = ++i; memset(a, 0, 3); for (p = a; p <= &a[4]; p++) printf("%d ", *p); puts(""); return 0; }