同学让我看了一道题:
int getsize(char p[100]="hello") { return sizeof(p); } int main(int argc, char* argv[]) { char a[200]="hello!"; cout<<sizeof(a)<<endl<<getsize("OK")<<endl; return 0; }
第一个返回200,第二个却返回4,sizeof(a)返回数组的大小,而第二个实际上是指针变量的大小,怎么回事呢?
在网上看到强人分析的MSDN才知道原因: