5 数组和字符串
5.1 概述
在程序设计中,为了方便处理数据,把具有相同类型的若干变量按有序形式组织起来——称为数组。
**数组就是在内存中连续的相同类型的变量空间。**同一个数组所有成员都是相同的数据类型,同时所有的成员在内存中地址是连续的。
5.2 一维数组
5.2.1 一维数组的定义和使用
5.2.2 一维数组的初始化
5.2.3 数组名
变量定义:数据类型 变量 = 值;
数组定义:数据类型 数组名[元素个数] = {值1, 值2, 值3};
数组下标:数组名[下标],数组下标是从0开始的 到数组元素个数-1
数组下标应为size_t类型,可理解为unsigned int
#include<stdio.h>
int main()
{
int arr[10] = {
9,4,2,1,8,5,3,6,10,7};
for (size_t i = 0; i < 10; i++)
{
printf("%d\n", arr[i]);
}
return 0;
}
int main01()
{
int arr[10] = {
1,2,3,4,5,6,7,8,9,10};
//数组元素参与计算
arr[3] = arr[5];
arr[2] = aee[3] * 2;
for (int i = 0; i < 10; i++)
{
printf("%d\n", arr[i]);
}
return 0;
}
int main02()
{
//数组在内存中存储方式和大小
int arr[10] = {
1,2,3,4,5,6,7,8,9,10};
printf("%p\n", &arr[0]);
for (int i = 0; i < 10; i++)
{
printf("%p\n", &arr[i]);
}
//数组名是一个地址常量,指向数组首地址的常量 arr=arr[0] 不允许被赋值
printf("%p\n", arr)
//数组在内存中占的大小=数据类型*元素个数
printf("数组在内存中占的大小:%d\n", sizeof(arr));
//数组元素大小
printf("数组元素大小:%d\n", sizeof(arr[0]));
//数组元素个数
printf("数组元素个数:%d\n", sizeof(arr)/sizeof(arr[0]));
for (int i = 0; i < sizeof(arr)/sizeof(arr[0]); i++)
{
printf("%d\n", arr[i]);
}
return 0;
}
int main03()
{
//数组定义
//int arr[10] = {1,2,3,4,5,6,7,8,9,10};
int arr[] = {
1,2,3,4,5,6,7,8,9,10};
for (int i = 0; i < sizeof(arr)/sizeof(arr[0]); i++)
{
printf("%d\n", arr[i]);
}
int arr[10] = {
1,2,3,4,5};//1,2,3,4,5,0,0,0,0,0
int arr[10] = {
0};//0,0,0,0,0,0,0,0,0,0 没有初始化的默认是0
int arr[10];//只定义 开辟了内存空间 没有赋值 int arr[]不可以
//数组元素 必须是常量 常量表达式
//数组必须预先知道大小 动态数组-->开辟堆空间
//在开头 #define SIZE 10
int arr[SIZE];
for (int i = 0; i < SIZE; i++)
{
scanf("%d", &arr[i]);
}
for (int i = 0; i < SIZE; i++)
{
printf("%d\n", arr[i]);
}
return 0;
}
int main04()
{
int arr[10] = {
1,2,3,4,5,6