数组
来源:互联网 发布:小型企业网络组建设备 编辑:程序博客网 时间:2024/05/29 06:57
1.数组大小问题(全局和局部)
数组a的定义放在函数内部,最大可开到52万;
#include <stdio.h>#define maxn 520000int main(){ int a[maxn]; int x,n=0; while(scanf("%d",&x)==1) a[n++]=x; int i; for(i=n-1;i>=1;i--) printf("%d ",a[i]); printf("%d\n",a[0]); return 0;}
而放在函数外部,作为全局数组,可以开到40千万。
原因后续补上…….
2.数组赋值问题
数组不能够进行赋值操作。
如果声明的是”int a[maxn],b[maxn]”,是不能赋值b=a的。如果要从数组a赋值k个元素到数组b,可以这样做:memcpy(b,a,sizeof(int)*k)。
当然,如果数组浮点型的,复制时要写成memcpy(b,a,sizeof(float)*k)
。
另外需要注意的是,使用memcpy函数要包含头文件string.h。如果需要把数组a全部复制到数组b中,可以写得简单一些:memcpy(b,a,sizeof(a))。