C/C++语言中sizeof对于数组的一点总结
最近在面试中被问到了几个有关sizeof的问题,自我感觉都回答对了,不过回来实际编写代码试了一下,发现还是错了一个地方,于是总结了一下。
栈中的数组对于栈中的数组,sizeof给出的会是实际的数组长度,而非指针长度。
#include <stdio.h>void printsize1(char argv[]) { printf("%d\n", sizeof(argv)); }void printsize2(char *argv) { printf("%d\n", sizeof(argv));}int main() { char a[] = "blue1"; char *b = "blue1"; printf("printsize1(a): "); printsize1(a); printf("printsize2(a): "); printsize2(a); printf("printsize1(b): "); printsize1(b); printf("printsize2(b): "); printsize2(b); return 0;}?程序结果