1.解析一维数组的创建和初始化
一维数组的创建:
数组的元素类型 数组名 [常量表达式]
1.一维数组的初始化:
数组的初始化是指,在创建数组的同时给数组的内容一些合理初始值(初始化)。
定义数组大小并全部初始化:int arr1[5]={1,2,3,4,5};
不定义数组大小直接初始化:int arr2[]={1,2,3,4,5};
定义数组大小并不完全初始化:int arr3[5]={1,2,3}; //其余元素为0;
字符数组,定义数组大小并全部初始化:char arr4[3] = {'a',98, 'c'};
字符数组,并不完全初始化:char arr5[] = {'a','b','c'};
字符数组,其中存放字符串:char arr6[] = "abcdef";//数字中共有7个字符,最后一个为“\0”最为结束标志;
字符数组,并不完全初始化:char arr5[] = {'a','b','c'};
字符数组,其中存放字符串:char arr6[] = "abcdef";//数字中共有7个字符,最后一个为“\0”最为结束标志;
2.一维数组的使用
“[]”是解引用操作符,就是数组访问的操作符。数组是使用下标来访问的,下标从0开始。
比如:#include <stdio.h>
int main()
{
{
int arr[10] = {0};
int i = 0;
for(i=0; i<10; i++)
{
arr[i] = i;
}
for(i=0; i<10; ++i)
{
printf("%d ", arr[i]);
}
return 0;
}
{
printf("%d ", arr[i]);
}
return 0;
}
3.一维数组的存储
一维数组在内存中是连续存放的,随数组下标的增长,元素的地址也在有规律的递增。
4.一维数组的指针访问
数组的数组名代表数组首元素的地址,如:int arr[]={1,2,3,4,5};
printf("%p\n",arr);//打印出来的是数组首元素的地址
arr[i]和*(p+i)等价,都代表数组的第i个元素。
5.解析二维数组的创建和初始化
二维数组的创建:
数组的元素类型 数组名 [常量表达式][常量表达式]
二维数组的初始化:
定义数组大小并全部初始化:int arr1[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
或int arr2[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
不完全定义数组大小初始化:int arr3[][4]={1,2,3,4,5};
或int arr6[][4]={{1,2},{3,4,5}};
定义数组大小并不完全初始化:int arr5[3][4]={1,2,3,4,5};
或int arr6[3][4]={{1,2},{3,4,5}};
6.二维数组的使用
二维数组的使用也是通过下标的方式,如:#include <stdio.h>
int main()
{
int main()
{
int arr[3][4] = {0};
int i = 0;for(i=0; i<3; i++){int j = 0;for(j=0; j<4; j++){arr[i][j] = i*4+j;}}for(i=0; i<3; i++){int j = 0;for(j=0; j<4; j++){printf("%d ", arr[i][j]);}}}return 0;
7.二维数组的存储
二维数组在内存中也是连续存放的,随数组下标的增长,元素的地址也在有规律的递增。
8.二维数组的指针访问
#include <stdio.h>
int main()
{
int arr[3][4] = {0};
int *p = &arr[0][0];
int i = 0;
for(i=0; i<3*4; i++)
{
p[i] = i;
}
for(i=0; i<3; i++)
{
int j = 0;
for(j=0; j<4; j++)
{
printf("%d ", arr[i][j]);
}
}
return 0;
}