1.int arr[10]={1,2,3,}//不完全初始化,剩下的元素默认初始化为0;
注意:数组是使用下标来访问的,下标是从0开始的;数组的大小可以通过计算得到;
2.sizeof和strlen的区别:
sizeof和strlen没有什么关联;
strlen是求字符串长度的-只能针对字符串求长度-属于库函数-需要引头文件;
sizeof计算变量、数组、类型的大小-单位是字节-属于操作符;
3. 打印一个数组中的数:
过程:sz通过sizeof计算数组的字符多少;for循环通过每个数组成员的下角标打印数组的内容;printf打印数组的下角标;结束程序。
4.对数组进行取地址:
5.
其中int arr[3][4]={{1,2,3},{4,5}};称作二维数组;
二维数组中行和列(3和4)不能同时省略;但是,可以省略行,但不能省略列;
6.打印二维数组:
[3][5]表示3行5列;用两个for循环分别打印二维数组的行与列;printf(“\n”)表示换行;
7.打印二维数组的地址:
首先是第一行,然后是第二行,最后是第三行。都是按照下角标打印的;
8.冒泡排序函数:
思考?既然对arr进行传参,传过去的是首元素的地址,为什么定义函数的时候不用指针函数;
9.补充一下:break语句只能用于for循环和switch循环,在if语句中不能使用,因为if语句是条件语句,不是循环语句,所以不能用break来结束;
10.
切记:格式控制符“%p”中的p是pointer(指针)的缩写。%p是打印地址的;&表示取地址;
就是说&arr[0]和打印arr得到的地址是一样的;也就是强调打印数组的地址是打印是arr中首元素的地址;
11.int arr[]={1,2,3,4,5,6,7,8,9}; int sz=sizeof(arr)/sizeof(arr[0]);
像上面提到的sizeof(数组名)-数组名表示整个数组,sizeof(数组名)计算的是整个数组的大小;单位字节;
&数组名,数组名代表整个数组;&数组名,取出的是整个数组的地址;