数组的基本概念:
批量创建一组相同类型的变量。
创建数组:
//创建数组
int arr[4] = {
1, 2, 3, 4 };
//批量创建了一组int类型的变量。
//有4个变量 数组名字为arr
//把初始值一次的设置进{}
a)[4]中的4可以省略,但数组的长度就和后面初始化的列表里的元素个数一致
b)[4]如果不省略的时候,后面的初始化列表的元素不能比4个多。
c)[4]如果不省略的时候,后面的初始化列表的元素可以比4个少,剩下的元素填成0.
d)创建数组的时候,[ ]里面的数字只能是一个常量,不能是变量。(C89中)
可以这样
#define size 4
char arr[size] = {
0};
enum{
size = 4,
};
char arr[size] = {
0};
e)如果省略了[4]中的数字,就一定要使用{ }进行初始化。
int arr[];
//这样就会编译不了
f)如果没有省略[4]的数字,并且也没有进行初始化直接进行打印就会打印出内存的残留值
。
#include<stdio.h>
int main(){
inr arr[4];
printf("s",arr[4]);
return 0;
}
如果是一个全局变量,没有被显式初始化,会被自动初始化为0.
如果是一个巨擘变量,没有被显式初始化,就是上次残留的值.
//针对字符数组的初始化
//可以向普通数组一样使用{}初始化
//也可以使用""来用一个字符串进行初始化
char str1[] = {
'a', 'b', 'c' };//字符数组
char str3[] = "abc"; //字符串
不是每个字符数组都可以成为"字符串",
字符串是一种特殊的字符数组,一定是以/0来结尾。
给任何str系列的函数(strlen,strcmp…)进行传参的时候,必须要由人来保证参数是一个合法的字符串。
数组的使用:
1.求数组长度
sizeof(arr) / sizeof(arr[0])
2.取下标~[]
从0开始 到 len-1结束。
一旦下标越界,就是未定义行为!
#include<stdio.h>
#int main(){
<