int N; scanf("%d",&N); int *a=new int[N]; 上面的语句是什么意思啊,在c语言中碰到的,谢谢

如题所述

上面的语句实际上等效于:
int N; //定义整型变量N
scanf("%d",&N); //从键盘输入N的值,在C语言中变量前加地址符&,就表示是取该变量的地址,这个语句等效于scanf("%d",N);,因为C语言通过变量名就可以找到变量的存储位置,并将数值存放在相应的位置上。
int *a=new int[N]; //动态分配N个整型储存空间,并将首地址赋给整型指针变量a。
//这段程序的功能是产生一个动态数组。即数组的元素个数是程序进行时才确定的。还要注意一个细节,用new动态生成的数组,需要用free释放,否则会出现内存泄流。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-28
int N; //定义整型变量N
scanf("%d",&N); //从键盘输入N的值
int *a=new int[N]; //动态分配N个整型储存单元,首地址赋给a。

//这段程序的功能是实动态数组。即数组a的元素个数是程序进行时才确定的。本回答被提问者采纳
第2个回答  2011-06-28
定义一个int型N,输入N的数值,在heap上分配N个int型那么大的内存存放数组a。
相似回答