1.相同数据类型的集合
数组,局部变量,栈
2.开辟一块连续的内存空间
常量:字面常量 10 20 常变量:const
3.数组的定义和初始化:arr 数组名代表数组元素的地址 printf("%dn",arr)//打印地址
一维数组:1) char arr[]={'h','e'} char arr[]="hello world" int arr[]={1,2,3,4}
char ch[]={'h','e','l','l','o'};
char arr[]="helloabc"
联系:存储 字符数组的方式进行数据存储,
区别:后者字符串默认结尾标记‘ ’
计算字符串长度
1.用sizeof计算,
第一种:sizeof(ch)/sizeof(ch[0])为5个
第二种:sizeof(arr)/sizeof(arr[0])9个//因为后者字符串默认以 结尾
2.strlen()函数计算;
该方法需要加#include
统计字符个数只找 结束,但是字符数不算
strlen(arr)=>8个,strlen(ch)=>结果不定,因为其没有 结尾,在其后随机数找到 结束
2) int arr[100];//随机值 debug
3) int arr[100]={1,2,3};//部分赋值,剩余类型默认值 0
二维数组: 1)int arr[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};int arr[3][4]={1,2,3,4,5,6}
2) int arr[][4]={{1,2},{3,4},{5,6}}
3) int arr[][4]={1,2,3,4,5,6,7,8,9}
4.数组的访问和遍历:下标,下标起始值:0开始
一维数组:for(int i=0;i<=sizeof(arr)/sizeof(arr[0]);i++) //数组长度:
{printf("%dn",arr[i])}
二维数组:for(int i=0;i {for(int j=0;j {printf("%d ",a[i][j]) ; } printf("n") } 5.数组的函数封装调用 一维数组:void add(int* arr,int len){......} int main(){int arr[]={1,2,3,4,5,6};int len=sizeof(arr)/sizeof(arr[0]);add(arr,len)} 二维数组:void add(int (*arr)[4],int i,int j){......}//形式一 void add(int arr[][4],int i,int j){......}//形式二 int main(){int arr[][4]={1,2,3,4};int i=sizeof(arr)/sizeof(arr[0]); int j=sizeof(arr[0])/sizeof(srr[0][0]);add(arr,i,j);} 6.补:printf("%c",brr[0])==putchar(brr[0]) //字符输出 scanf("%c",&num)==char num=getchar()//键盘获取一个字符 arr==&arr[0];//数组首元素地址 断言:#include ; assert(...) .....//满足括号内条件允许下列操作 arr[3][4]={1,2,3,4,5,6,7,8,9,10,11,12} 针对于上面这个数组arr+1 等价于一次增加一行;arr[0][4]数值为5(原因:数组逻辑上为 二维,但地址为一维) 7.转义字符: 以上代码中 123 n t a 均为转义字符,其中转义字符还有:ddd \ " ' 7 等 char arr[]="12345nt6 8abcd";
strlen(arr);//长度为6;遇到 字符结束
sizeof(arr)/sizeof(arr[0]);//长度为12



