有关sizeof和static的问题
这个运算符和关键字一直很难搞清楚啊,刚看到面试宝典上说sizeof只计算栈上的内存容量,很好奇得试了下下面的代码
static char temp[10] = {"1234"}; printf("sizeof=%d\n",sizeof(temp)); strtuc AA { int a; int b; static int c; }aa;//1.cpp#include<iostream>using namespace std;extern int extern_array[];//此处声明外部数组,这个数组定义在其他文件中int array[10];struct AA{ int a; int b; static int c;}aa;int AA::c = 0;int main(){ cout<<sizeof(AA)<<endl; cout<<sizeof (array)<<endl; //cout<<sizeof (extern_array)<<endl;//sizeof不能计算外部数组的大小,因为外部数组声明时可以不声明其大小 system("pause"); return 0;}//2.cppint extern_array[100];
[解决办法]
劝楼主还是别看那本宝典了
我从你说的页数附近看了几眼就发现了两个错误:
string strArr1[] = {"Trend", "Micro", "Soft"};//书上说sizeof (strArr1) == 12; 明明应该是3 * sizeof(string); string是一个类,并不是指针类型//居然能举出这样的例子:int ss[100] = "0123456789";
[解决办法]