第六章: 数组
补充基本概念:关键字 :由程序语言事先定义的
标识符:由程序员命名
1.数组初始化
元素类型 数组名 【元素数量】={逗号分隔的元素内容}
2.初始化列表短于数组长度
int arr[10]={1,2,3,4,5}
*数组有十个元素,而初始化列表只指定了5个元素,那么剩下元素被取代为零
*若初始化列表什么都没有,所有元素将被填为零
*若初始化列表长于数组长度,则代码无法编译通过
*方括号【】可以不填
*访问数组元素是从0开始的
3.小心数组越界
*如果数组只有10个元素,我们访问或修改这10个元素以外的元素,那么结果是未定义的。这意味着程序看上去可以运行,但运行的结果很怪,或异常终止。
警告:千万不要越界访问或修改数组元素
eg. int arr[10]={};
printf("%d\n,arr[10]") // 下标为0到9,访问下标10的元素属于越界访问。
怎么判断呢?
可以理解 定义时是 int arr[] 而使用时(printf...)表示下标
补充:冒泡排序(我的天,这个图简直了,直接秒懂 )
4.多维数组
eg.1.数组名
2.元素类型:int[10]
3.元素数量:5
按理来说应该写成 int[10] B[5];
但数组名左边的方括号都移到右边来
即 Int B【5】【10】;
B数组含5个元素,每个元素都是含10个int元素的数组
声明一个数组
元素类型 数组名 【元素个数】 【元素个数】 若元素类型中含有方括号,移到最右边
5.字符数组和字符串
*字符串常量末尾会自动添加 '\0' 结尾(所以元素个数要比实际字符个数>=1)
*打印字符数组
int main() { char str[20] = { 'H','e','l','l','o','w','o','r','l','d' }; printf(str); printf("\n"); printf("%s", str); printf("\n"); printf("\n"); return 0; }
6.使用strlen测量字符串长度
*strlen可以接受一个字符串作为参数。
*strlen返回值为这个字符串的长度
*使用strlen函数,需包含头文件string.h
*与sizeof区别:strlen:测量第一个数组到\0的长度
sizeof:测量数组本身的长度
char str[20];
scanf("%s",str);//将键盘输入的一串字符储存到字符数组str
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧