数组

来源:互联网 发布:小型企业网络组建设备 编辑:程序博客网 时间: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))。