1. 数组的创建方式:type_t arr_name[const_n]
type_t指数组的元素类型 const_n是一个常量表达式,用来指定数组的大小
int arr[10] char ch[5] double data[20]
在C99标准之前,数组的大小必须是常量或者常量表达式,之后可以是变量,目的是为了支持变长数组,下述代码只能在C99中使用
int n=10;
scanf(“%d”,&n)
int arr[n] //这种数组是不能进行初始化的
2.数组初始化是指,在创建数组的同时给数组内容一些合理的初始值。
int arr[10]={1,2,3}属于不完全初始化,剩余的元素默认为0;
char ch1[10]={'a','b','c'}//a b c 0 0 0 0 0 0 0
char ch2[10]="abc";//a b c \0 0 0 0 0 0 0
每个元素之间相差4,因为整形占用4个字节。
从左往右低地址到高地址。
二位数组行可以省略,列不能省略。
3.二维数组在存储器中是以一维数组的形式存储的即
1 | 2 | 3 |
4 | 5 | 6 |
由我们看到的上边的是正常的二维数组,下表格是在存储空间中实际的存储方式,连续存放:
1 | 2 | 3 | 4 | 5 | 6 |
4.在进行打印某个元素地址位置时,选择%d与%p的区别在,虽然都是打印地址,%p是把地址以16进制的形式输出,%d是以十进制进行输出。且p是专门针对地址输出使用
5.数组传参有两种写法1.数组2.指针。冒泡排序的核心思想是相邻两元素的比较。数组名arr看似是地址,本质是指针变量,但是有两个例外,1).sizeof(数组名)这里数组名表示整个数组的,计算的是数组的大小,单位是字节2).&数组名,这里的数组名表示整个数组取出的是整个数组的地址。
6.二维数组中arr表示数组首元素的地址,但是,是所以在的行的整体地址,如果是arr+1表示的是第二行的地址。
7.