c语言*数组

来源:互联网 发布:华为推送 java服务端 编辑:程序博客网 时间:2024/06/05 13:27

C语言提供了一种功能,用来创建一组有序的数据,称之为“数组”

定义数组

int grades[100];
将grades声明为一个包含100个整型元素的数组。使用0~99的下标就可以调用这些数据。

tips:编译器不会检查数组的越界问题,如果引用数组的150号下标元素,不会出现问题,但是取不到我们想要的数据,程序员自己要清楚数组的越界问题。
例如 int buf[5] = {“12345”}
此时的数组已经越界了 用strlen(不统计\0)来测buf数组大小此时为6,已经不准确了。

初始化数组

完全初始化:

int arr[5] = {1,2,3,4,5};
定义了一个整型数组并且全部初始化
char str[5] = {‘A’, ‘B’, ‘C’, ‘D’,’E’};
定义了一个字符数组str并且初始化为 ‘A’ ‘B’ ‘C’ ‘D’ ‘E’

部分初始化:

数组可以不用全部初始化,int arr[3]={1}; 就是把arr[0]=1,其他没有初始化的将被设定为0。

数组写零:

int arr[3]={};

数组名左值与右值

右值:数组名可以作为右值,表示该数组首元素的首地址。
注意:arr,&arr,&arr[0]的值相同,即表达的内容相同。
int *p = arr; == int *p =&arr[0];
左值:数组名不可以作为左值。原因:1.数组名在编译后为常量只读。2.数组作为一个整体,没有匹配的数值与其空间对应。

数组做为函数入参时

数组名作为函数参数时就退化为了一个指针
传递进去的是它首元素的首地址。
因此在函数中对于数组进行操作时,要加上数组的大小(lenth)。

(1)利用数组实现冒泡排序:
(2)利用数组实现选择排序:
(3)利用数组实现进制的装化:
(4)利用传值调用实现冒泡排序
(5)利用传值调用实现选择排序:
(6)利用传值调用实现数组中的元素互换
(7)二分法查找数组中的数
7.1 循环
7.2 递归
(8)利用传值调用实现数组元素的循环向右移动

原创粉丝点击