数组
是一块 “连续” 且 “同类型” 的存储空间
- 定义数组
类型 数组[长度] - 整型数组
int/short/long 数组名[长度]
例如:int arr[10]={1,2,3,4,5,6};
注:分配空间为10,但只有六个值,其余初始化为0;
sizeof(arr)/sizeof(int)=10 不等于6 - 字符数组
char 数组名[长度]
初始化:
char buf[10]={'a','b','c'};
- 字符串
char buf[]=“abc”;//系统会默认在字符串后面加上空字符’\0’作为结束字符
字符串系统函数string.h
strlen():求字符串元素个数
sizeof(buf)=4;strlen(buf)=3
注意sizeof与strlen 的区别
字符串拷贝函数:
strcpy(str1,str2):str2的字符串拷贝给str1
strncpy(str1,str2,n):将str2的前n个字符拷贝给str1
字符串比较:
strcmp(str1,str2):返回值为int型
str1>str2 return >0
str1=str2 return =0
str1<str2 return <0
二维数组
- 定义
类型 数组名[行][列]
- 初始化
类型 数组名[行][列]={{,,},{,,},...,{,,}};
- 引用元素 下标法
例如:引用第三行第二列元素[2][1],下标从0开始
注:
int arr[3][3]={{1,2,3},{4,5,6},{7,8,9}};
//引用 "第一行第四个元素" arr[0][3]
printf("%d\n",arr[0][3]);
这样并不会产生数组越界,会输出arr[1][0]那个元素
所以数组不会越界,但是这样引用不符合自几对数组的定义,不建议使用!!!