资讯动态

C语言 数组【一维数组笔记】

发布时间:2026/10/8 18:23:25 来源:尧图企业网站定制
1. 一维数组创建的基本语法type arr[常量值]; · type 是数组中存放数据的类型 可以是char、short、int、float等。也可以自定义类型。 ·int arr[20] 这个数组存了20个元素2. 数组的初始化① 完全初始化int arr[5]{1,2,3,4,5};int arr[]{1,2,3,4,5};// 这里的数组大小还是5编译器会根据数组的大小推算出来。②不完全初始化int arr[6]{1};//第一个元素初始化为1后面剩余默认初始化为0// 错误的初始化 ---- 初始化的项数太多int arr[3]{1,2,3,4,5,6};3. 字符串和字符数组char arr1[]{‘a’,‘b’,‘c’,‘/0’};//一定要在后面添加一个’/0’,就可以打印出来abcchar arr2[]“abc”;//你调试会发现编译器在末尾已经添加了一个’/0’字符4. sizeof 与 strlen 的对比#includestdio.h#includestring.hintmain(){chararr1[]abc;chararr2[]{a,b,c,\0};printf(%zu\n,sizeof(arr1));//1*4 //sizeof求的是数组的内存它需要求包括\0之前的字节数char是1字节printf(%zu,strlen(arr2));//3 strlen求/0前面的字符个数return0;//strlen 包含 string.h 头文件}5. 数组的类型int arr1[10]; int [10];char arr2[9]; char [9];6. 数组的下标int arr[4]{1,2,3,4};⚠ 在C语言中数组的访问提供了一个操作符[ ] 这个操作符叫做下标引用操作符。#includestdio.hintmain(){intarr[10]{1,2,3,4,5,6,7,8,9,10};printf(%d,arr[6]);//7return0;}7. 打印数组内容#includestdio.hintmain(){intarr[6]{1,2,3,4,5,6};inttsizeof(arr)/sizeof(arr[0]);//24 / 4 6inti0;for(i0;it;i){printf(%d ,arr[i]);}return0;}思考练习① 如果要逆序打印数组中的内容怎么处理#includestdio.hintmain(){intarr[5]{1,2,3,4,5};for(inti4;i0;i--){printf(%d ,arr[i]);}return0;}对比② 如果间隔一个元素打印数组内容怎么处理#includestdio.hintmain(){intarr[6]{1,2,3,4,5,6};for(inti0;i5;i){if(i%20)printf(%d ,arr[i]);}return0;}③ 如果在访问数组元素的时候下标超出了范围会怎样✨解释这就是数组中的越界访问了这种行为十分危险在C中它可能死循环可能崩溃可能悄无声息埋下一颗”雷“。所以永远都不要越界4. sizeof 计算数组元素的个数sizeof是C中的一个关键字是可以计算类型或者计算变量大小的。int arr[10]{0}; printf(%d ,sizeof(arr1));//4*1040 ⚠ 这里输出的结果是40 计算的是数组所占内存空间的总大小单位是字节。5. 一维数组练习练习一编写代码演示多个字符从两端移动向中间汇聚。效果练习二二分查找折半查找给定一个升序的整型数组在这个数组中查找指定的值 n1.如果找到了就打印n的下标2.如果找不到就打印“找不到”效果为什么 mid left (right-left)/2 ?如果说使用mid(leftright)/2,就可能存在left与right相加值较大的时候就会存在溢出的问题因此midleft(right-left)/2更安全。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑