数组
一块 连续 且 同类型 的存储空间
整型数组
int/short/long 数组名[长度]
注意:int buf[10]={1,2,3,4,5,6}
分配空间时,赋予初值以外的空值均为0
sizeof(buf)/sizeof(int)==10 是不确定元素的个数的
字符数组
定义:char buf[长度]
初始化:在定义的同时赋初值
char buf[10]={'a','b','c'}
规定:在字符数组中用’\0‘(/null)作为结束字符
字符串常量: "多个字符"
注:字符串常量的末尾时会自带'\0',系统函数或%s打印时,遇到字符串的\0时结束
字符串系统函数:string.h
unsigned int strlen(const char*); 求字符串元素的个数(不包含\0)
注:在笔试中如下题目: sizeof(buf) /strlen(buf)
字符串拷贝函数:
strcpy(des,src); src的字符串拷贝给des
strncpy(des,src,n); 将src的前n个字符拷贝给des
字符串比较:
int strcmp(str1,str2)
int strncmp(str1,str2,n)
str1>str2 >033
二位数组
定义
类型 数组名[行][列]
1.元素的个数:行*列 空间长度:行*列*sizeof(类型)
2.在逻辑结构是二维数组,在物理结构是线性结构
初始化
在定义数组同时赋初值
类型 数组名[行][列]={{...},{...},{...},...}
注:若每行初始化部分时,其他元素值为0
引用元素-下标法
eg:引用第三行第二列元素[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]那个元素,但容易造成数组越界,通常不会使用这种用法