今天老师讲数组,我一定要好好听!
数组:存放的元素数据类型相同,存储的是一片连续的空间
数组的定义:
存储类型
数据类型
数组名[元素个数]
int arr[5]
整型数组的初始化:
#include<stdio.h>
//int arr[5]; // 0 0 0 0 0
int main()
{
//int arr[5]; // 5个随机数
//int arr[5]={1,2,3,4,5};
int i=0;
for(i=0;i<5;i++) // for(i=0;i<3;i++)
{vim
printf("%d ",arr[i]);
}
return 0;
}
int arr[5]={1,2,3,4,5}; // 1 2 3 4 5
int arr[5]={0}; // 0 0 0 0 0
int arr[5]={1,2,3} // 1 2 3 1007 -2033
int arr[]={1,2,3,4,5}; // 1 2 3 4 5
int arr[]={0}; // 0 0 0......
int arr[]={1,2,3}; // 1 2 1007 -2033
整型数组的输入与输出:
#include<stdio.h>
int main()
{
int arr[5]={0};
int i=
0;
for(i=0;i<5;i++)
{
scanf("%d",&arr[i]);
// printf("%d\n",arr[i]); // 输入一个,输出一个
}vim
// printf("%d",arr[i]); // 输出第六个元素
for(i=0;i<5;i++)
{
printf("%d",arr[i]);
}
return 0;
}
数组名和首地址
#include<stdio.h>
int main()
{
int arr[5]={0};
return 0; printf("%p",arr);
printf("%p",&arr[0]);
return 0;
}
#include<stdio.h>
int main()
{送餐费()
int arr[5]={0};
int i=0;
for(i=0;i<5;i++)
{
scanf("%d",arr+i);
// scanf("%d",arr++) // 不能输入arr是地址常量
}
for(i=0;i<5;i++)
{vim
printf("%d",arr[i]);
}
}::
#include<stdio.h>
int main()
{
int arr[5]={0};
printf("%ld",sizeof(arr));
printf("%lint",sizeof(arr[0]));
}
字符数组:
char chr[5]={'a','b','c','d','e'};
char chr[5]={'a'};
char chr[5]={"abcde"};
char chr[]={'a','b','c','d','e'};
#include<stdio.h>
int main()
{
int i=0;
char chr[5]={'a'};
for(i=0;i<5;i++)
{
printf("%c\n',chr[i]);
}
return 0;
}
输出结果:
a
后面四个元素数'\0',是字符0,也是字符串的结束符,在终端上不会显示
char chr[5]={"abcde"}; // "abcde'\0'"
#include<stdio.h>
int main()
{
int i=0;
char chr[5]={'\0'};
for(i=0;i<5;i++)
{
scanf("%c%*c",&chr[i]); // 给字符串初始化用到%*c
}
for(i=0;i<5;i++)
{
printf("%c\n",chr[i]);
}
}
字符数组的数组名和首元素:
#include<stdio.h>
int main()
{
int i=0;
char chr[5]={'\0'};
printf("%p\n",chr);
printf("%p\n",&chr[0]);
printf("%p\n",&chr[1]);
return 0;
}
输出结果:
0x7ffd12afbff3
0x7ffd12afbff3
0x7ffd12afbff4
chr[0]与chr[1]的地址相差一个字节
输入一个整型数组,输出最大值和最小值,并输出下标
字符串数组:
char str[10]={"hello"}; // 开辟了10个空间
char str[]={"hello"};
char str[10];str="hello";
char str[10];str[10]="hello";
#include<stdio.h>
int main()
{
char str[10]; // 常量不能赋值
str="hello";
//str[10]="hello"; // str[10]超出字符串数组的范围
puts(str);
return 0;
}
字符串处理函数
strlen
计算字符串的实际大小,并返回字符串的长度
sizeof是运算符,strlen是函数
当数组给定大小的时候,sizeof计算出来的是空间的大小,当没给定大小时,计算出来是能看见的长度加1,strlen计算的是字符串的实际长度,与给定的大小没有关系
字符串处理函数
strcpy
将目标字符串的内容拷贝到原字符串
strcmp
比较字符串的大小,比较的时候一直往后比较,直到遇到不同的字符
老师开始讲数组复习题!一定要认真听!
2022年9月22日
徐子宸