一、数组
数组上的元素存储地址都是连续的,数组名表示数组的首地址,也就是第一个元素的地址arr=&arr[0];在arr+1之后,是向首地址之后的一个数据类型移动。
数组名是常量不可以进行自增或自减 arr++/arr--/++arr/--arr
例:对数组初始化以下【2,3,4,76,8,5】元素,查找key=100是否存在
int arr[]={2,3,4,76,8,5};
// sizeof(arr)/sizeof(int);
int len=sizeof(arr)/sizeof(arr[0]);
int key,count=0;
printf("please enter key:");
scanf("%d",&key);//3
//循环输入比较key
for(int i=0;i<len;i++)//
{
if(key==arr[i])
{
count++;//计算key出现的次数
printf("存在\n");
break;
}
}
if(count==0)//if(i==len)
printf("不存在\n");
二、二维数组
一般遍历二维数组方式使用for,使用两层循环嵌套方式
int i=0;
int j=0;
int arr[2][3];
for(i=0;i<m;i++){
for(j=0;j<3;j++){
}
}
作业
1.循环输入二维数组,计算所有元素的和
#include<stdio.h>
int main(int argc, const char *argv[])
{
int n=0;
int m=0;
printf("请问你要输入一个行列数为——的二维数组\n");
scanf("%d",&m);
scanf("%d",&n);
int num=0;
int arr[m][n];
int sum=0;
for(int i=0;i<m;i++){
printf("请输入第%d行的元素:\n", i+1);
for(int j=0;j<n;j++){
scanf("%d",&num);
arr[i][j]=num;
sum+=arr[i][j];
}
}
printf("总和为%d\n",sum);
return 0;
}