C语言总结_数组知识

网友投稿 517 2022-05-28

当前文章复盘C语言的数组: 数组定义规则、数组空间类型、数组下标使用、数组存放的数据类型、数组数据替换、插入、输入、输出、字符串输入、输出、长度计算等等。

一、数组概念

数组是一个相同类型元素的集合。

定义数组语法: <数据类型><数组名称>[数组的大小]; int data [100];

解释:

定义一个int类型数组名称是data,可以存放100int类型的数据,总大小字节: 100*4。

<数据类型> 可以填充那些参数?

基本数据类型(char 。。float、int。。。。。)、结构体数据类型、指针类型等。

数组概念说明

(1)[]称为下标符号,用来操作数组。比如: b=a[10]; //将a数组里第10个元素取出来赋值给b变量。

(2).访问数组时,下标的范围是从0开始。比如: int a[10]; 下标范围: 0~9

(3).数组在定义时,[]下标里填充的大小必须是常量。(C89标准) 比如: int a[b]; //错误 int a[10];

(4).数组只有在定义的时候,才可以整体赋值。比如: int a[10]={12,34,56,78,90};

(5).数组在定义的时候,如果赋了值,[]下标里可以不用指定大小。 比如: int a[]={12,34,56};

(6).数组在定义的时候,至少给一个下标赋了初始值,其他下标默认置为0。比如: int a[10]={0};

#include int main(void) { int buff_i[10]={10,20,30}; //定义整数类型数组 float buff_f[10]={10.123,20.123,30.123}; //定义浮点数类型数组 char buff_c[10]="123456";//定义字符串类型数组,结尾多了一个结束符"

#include int main(void) { int buff_i[10]={10,20,30}; //定义整数类型数组 float buff_f[10]={10.123,20.123,30.123}; //定义浮点数类型数组 char buff_c[10]="123456";//定义字符串类型数组,结尾多了一个结束符"\0" //说明: 在C语言里面没有专用字符串类型,字符串本身还是使用char类型定义。Qstring Sting char buff[10]={'1','2','3','4'}; //定义字符类型数组 int i; //打印整型 for(i=0;i<10;i++) { printf("%d ",buff_i[i]); } printf("\n"); //打印浮点类型 for(i=0;i<10;i++) { printf("%f ",buff_f[i]); } printf("\n"); //打印字符串 printf("%s\n",buff_c); //打印字符类型 for(i=0;i<10;i++) { printf("%c ",buff[i]); } printf("\n"); return 0; }

" //说明: 在C语言里面没有专用字符串类型,字符串本身还是使用char类型定义。Qstring Sting char buff[10]={'1','2','3','4'}; //定义字符类型数组 int i; //打印整型 for(i=0;i<10;i++) { printf("%d ",buff_i[i]); } printf("\n"); //打印浮点类型 for(i=0;i<10;i++) { printf("%f ",buff_f[i]); } printf("\n"); //打印字符串 printf("%s\n",buff_c); //打印字符类型 for(i=0;i<10;i++) { printf("%c ",buff[i]); } printf("\n"); return 0; }

二、数组输入输出

#include //从键盘上录入一串数据,倒序输出 int main(void) { int i; int buff[5]; printf("请输入5个数据:"); for(i=0;i<5;i++) { scanf("%d",&buff[i]); //从键盘上录入数据 } for(i=5-1;i>=0;i--) { printf("%d ",buff[i]); //将数据打印到控制台终端 } printf("\n"); return 0; }

三、数组的练习题目

(1). 从键盘上录入一串数据(整数),将数组里的10替换成66,并统计替换的数量。

#include int main(void) { //将数组里的10替换成66,并统计替换的数量。 int buff[10]={10,34,10,347,23,10,123,56,78,10}; int i,cnt=0; for(i=0;i<10;i++) { if(buff[i]==10) { cnt++; //记录数量 buff[i]=66; } } printf("替换的数量%d\n",cnt); for(i=0;i<10;i++) { printf("%d ",buff[i]); } printf("\n"); return 0; }

C语言总结_数组知识

(2) 计算数组的大小

int main(void) { int buff[]={10,34,10,347,23,10,123,56,78,10,45,10,10}; //34,347,23,123,56,78 int len=10; printf("buff数组的总大小=%d\n",sizeof(buff)); printf("buff数组有%d个成员\n",sizeof(buff)/sizeof(buff[0])); return 0; }

(3)从键盘上输入一串数据(整数),将数组里大于10的数据删除掉。

//比如: char buff[]={12,34,8,4,7,100}; //最终的结果:{8,4,7,0,0,0} #include /* 从键盘上输入一串数据(整数),将数组里大于10的数据删除掉。 */ int main(void) { int buff[13]={1,34,2,347,23,3,123,56,78,4,45,5,6}; int len=13; int i,j; for(i=0;i10) //当if条件成立的时候,i就是当前需要覆盖数据下标 { //将后面的所有数据向前移动一位 for(j=i;j

四、字符串

(1)字符串大小计算示例

char str1[]={'A','B','c'}; //3 char str2[]="ABC"; //4 printf("str1=%d\n",sizeof(str1)); //3 printf("str2=%d\n",sizeof(str2)); //4 //为什么是4 ?因为字符串结尾自带一个'\0' // '\0'表示是字符串的结束符号

(2)字符串的长度计算

#include int main(void) { char str[100]; //字符串如何从键盘上录入? scanf("%s",str); //从键盘上录入一个字符串 //str为什么不加&符号? 因为数组的名称就是地址(表示是数组首地址)。 //字符串如何输出? printf("str=%s\n",str); //如何知道从键盘上输入了多少个字符? //首先得知道一点: 字符串结尾符'\0' 字符 int i=0; while(str[i]!='\0') //判断字符串的结束符 { i++; } printf("字符串的长度=%d\n",i); return 0; }

(3)字符串的衔接符号

#include int main(void) { char str[100]="3847tr45gt\ // \表示字符串的衔接符号 rhonrbngfbn\ gf"; return 0; }

C 语言 数据结构

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:图解 Redis | AOF 持久化
下一篇:苹果无线充电器拆卸
相关文章