问题1: 为啥在函数中数组的个数输出总是不对呢? 下面写的练习的代码中的
cout<<"array\t"<<sizeof(array)<<"\t个数为"<<sizeof(array)/sizeof(int)<<endl;
数组个数永远是1?
问题2: 局部数组中 array3没有定义的数组内容2-4为啥可以自动补齐呢?
#include <iostream>
using namespace std;
void printArray(int array[]){
int num=(sizeof(array)/sizeof(int));
cout<<"array\t"<<sizeof(array)<<"\t个数为"<<sizeof(array)/sizeof(int)<<endl;
for(int i=0;i<5;i++)
{
cout<<array[i]<<"\t";
}
cout<<endl;
}
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int array1[5]={1,2,3};
static int array2[5]={1};
int main(int argc, char** argv) {
int array3[5]={2};
static int array4[5]={1,2};
//cout<<"array1 "<<sizeof(array1)<<"\t个数为"<<sizeof(array1)/sizeof(int)<<endl;
cout<<"Global: \n";
printArray(array1);
cout<<"\nGlobal static: \n";
printArray(array2);
cout<<"\local: \n";
printArray(array3);
cout<<"\local static: \n";
printArray(array4);
return 0;
}