全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > AI人工智能 > AI通用技术 >

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

时间:2017-11-28 11:57

人气:

作者:admin

标签: C语言  数组 

导读:19-C语言中的数组知识汇总-一、数组 1.数组基础 数组是相同类型数据的集合,它们都拥有同一个名称。在大数量处理和字符串操作时,广泛使用数组。数组对C语言来说起着相当至关重要...

一、数组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

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信