19-C语言中的数组知识汇总

19-C语言中的数组知识汇总,第1张

一、数组1.数组基础

数组是相同类型数据的集合,它们都拥有同一个名称。在大数量处理和字符串 *** 作时,广泛使用数组。数组对C语言来说起着相当至关重要的作用。
定义一个数组,10个元素为int类型的数组
类型名(int[10]) + 变量名(arr)

2.数组完全初始化#includeint main(void) { int arr[5] = {1,2,3,4,5,}; printf("arr[2] = %d\n", arr[2]); } root@ubuntu:/mnt/hgfs/SHARE/2# ./a.outarr[2] =33.数组遍历

数组下标越界,编译器不检查,提高效率

#includeint main (void) { int arr[5]={1,2,3,4,5}; int i =0;for(i; i<5; i++) { printf("arr[%d]= %d\n", i, arr[i]); } } root@ubuntu:/mnt/hgfs/SHARE/2# ./a.outarr[0]=1arr[1]=2arr[2]=3arr[3]=4arr[4]=54.数组部分初始化intarr[5];intarr_[5] = {1};intarr_3[5] = {};intarr_4[5] = {[2]=100};5.数组格式intnum =0;scanf("%d",&num);intarr[num]={};//error: variable-sized object may not be iniTIalized不能初始化可变化大小的对象。//数组格式是常量,此时是变量6.左值和右值

左值代表的是内存空间,右值代表的是值(内存空间内容)
数组名作为右值,打印的是地址,数字首元素首地址

*i = arr+1 指向数组第二个元素
*i = &arr+1 指向整个数组之后的第一个元素

7.传值调用

函数调用只是传进去实参的变量名字
数组名作为参数时,丢失了数组本身的大小,退化成了一个指针
数组名作为参数,要加上自己的大小(个数)

二、数组的应用1.冒泡排序#includeintmain(void) {intarr[10];inTI =0, j =0, temp =0;printf("请输入10个数:\n");for(i; i<10; i++) scanf("%d",arr+i);for(i=0; i<10; i++)printf("%2d",arr[i]);printf("\n排序后\n");for(i=0; i<9; i++) {for(j=0; j<9-i; j++) {if(arr[j] > arr[j+1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } }for(i=0; i<10; i++) {printf("%2d",arr[i]); }printf("\n"); } root@ubuntu:/mnt/hgfs/SHARE/1# ./a.out请输入10个数:13582467031358246703排序后01233456782.选择排序#includeintmain(void) {intarr[10];inTI =0, j =0, temp;printf("请输入5个数:\n");for(i=0; i<5; i++) scanf("%d",&arr[i]);for(i=0; i<5; i++)printf("%2d",arr[i]);printf("\n排序后\n");for(i=0; i<5; i++) {for(j=i+1; j<5; j++) {if(arr[i] for(i=0; i<5; i++) {printf("%2d",arr[i]); }printf("\n"); } root@ubuntu:/mnt/hgfs/SHARE/1# ./a.out请输入5个数:5824658246排序后865423.进制转换#includeintfun(void) {chararr[100]={0}, i =0;inta =0, b =0;printf("请输入一个数:");scanf("%d",&a);printf("请输入转换的进制数:");scanf("%d",&b);do{ arr[i] = a % b; a = a / b; i++; }while(a >0);for(i=i-1; i>=0;i--) {if(arr[i] <10) {printf("%d",arr[i]); }else{printf("%c",arr[i]-10+'A'); } } }intmain(void) { fun(); } root@ubuntu:/mnt/hgfs/SHARE/1# ./a.out请输入一个数:666请输入转换的进制数:1629A

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2515871.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存