<>集成数组的初始化
int a[]={2,4,6,5,68,9,8,56,6};
* 直接用大括号给出数组中所有元素的初始值
* 不需要给出数组的大小,编译器来数
sizeof(a)/sizeof(a[0])
sizeof(a)得到数组整个的字节数的大小
sizeof(a[0])得到数组中单个元素所占的字节
* 集成初始化时的定位
int a[10]={[0]=2,[2]=3,6,}
//{2,0,3,6,0,0,0,0,0,0}
<>数组的赋值
* 数组本身不能被赋值,因此要将一个数组赋值给另一个数组必须采用遍历 for(i=0;i<length;i++) { b[i]=a[i]; }
<>数组运算
#include<stdio.h> int search(int key,int a[],int length) { int ret=1; int i;
for(i=0;i<length;i++){ if(a[i]==key){ ret=i; break; } } return ret; } int main(
void) { int a[]={2,4,6,7,1,3,5,9,11,13,23,14,32}; int x; int loc; printf(
"请输入一个数字:"); scanf("%d",&x); loc=search(x,a,sizeof(a)/sizeof(a[0])); if(loc!=-1)
{ printf("%d在%d个位置上",x,loc); }else{ printf("%d不存在",x); } return 0; }
数组作为函数的参数时:
* 不能在[]中给出数组的大小
* 不能再用sizeof来计算数组的元素个数
数组作为函数参数时,必须用另一个参数来传入数组的大小
<>数组构建素数表
//建立素数表 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { const
int maxNumber = 100; int isPrime[100]; int i; int x; for (i = 0;i < maxNumber;i
++) { isPrime[i] = 1; } for (x = 2;x < maxNumber;x++) { if (isPrime[x]) { for (i
= 2;i * x < maxNumber;i++) { isPrime[i * x] = 0; } } } for (i = 2;i < maxNumber;
i++) { if (isPrime[i]) { printf("%d\t", i); } } printf("\n"); }