数组
- 数据类型:int
- 数组名:arr [长度]
- 特点:数组元素是连续空间,空间不能变化
- 格式:int arr[3] ={1,2,3} (可以省略长度)
- 若长度大于数据个数,剩下的空间就取默认值;若小于,则报错
- 索引:整数,从0开始,依次加1,是数组元素的编号,就叫下标[0-长度-1]
- 获取元素:数组名[索引]
- 给元素赋值:数组名[索引]=新值
#include<stdio.h>
int main(){
int a=1;
int arr1[3]={1,2,3};
printf("%d\n",arr1[1]);
arr1[1]=100;
printf("%d\n",arr1[1]);
}
- 索引值不能越界
- 数组的遍历 运用for循环很方便
#include<stdio.h>
int main(){
int a=1;
int arr1[5]={1,2,3,4,5};
for(int i=0;i<5;i++){
printf("%d\n",arr1[i]);
}
return 0;
}
内存中的数组
内存:软件在运行时,用来临时存储数据的。相比于硬盘,它不能持久保存数据。但是它的运行速度快。 int-->4个字节(相邻相差为4) char-->1个字节(相邻相差为1) printf("%p",&变量)可以打印地址
#include<stdio.h>
int main(){
int a=100;
int b=201;
int c=302;
char d='A';
char e='B';
char f='C';
printf("%p\n",&a);
printf("%p\n",&b);
printf("%p\n",&c);
printf("%p\n",&d);
printf("%p\n",&e);
printf("%p\n",&f);
return 0;
}
计算数组的元素个数=整个数组的大小/每个元素的大小 int len=sizeof(arr)/sizeof(arr[0])
#include<stdio.h>
int main(){
char arr[]={1,2,3,4,5,6,7,8,9,10};
printf("%p\n",&arr);
printf("%p\n",&arr[0]);
int len=sizeof(arr)/sizeof(arr[0]);
printf("%d\n",len);
for(int i=0;i<len;i++){
printf("%p\n",&arr[i]);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand(time(NULL));
int arr[20];
double sum = 0;
double avg;
for (int i = 0; i < 20; i++)
{
arr[i] = rand() % 100 + 1;
printf("%d\n", arr[i]);
sum += arr[i];
}
avg = sum / 20;
printf("平均数是%lf\n", avg);
int count = 0;
for (int i = 0; i < 20; i++)
{
if (arr[i] > avg)
{
count++;
}
}
printf("大于平均数的个数是%d\n", count);
return 0;
}