目录
一、数组
定义一个数组,需明确数组变量名、数组元素的类型和数组大小(数量)
1.一维数组定义和引用
定义
类型名 数组名 [数组长度];
例如: int a [10] 代表整型数组,数组变量名称为“a”,一共有10个整型元素。
数组是具有相同类型数据的集合,其中的数据按照一定的顺序排列存放
引用
数组元素要指定其下标,通俗点就是:说明要第几个数字
intmain() { inta[10]={0,1,2,3,4,5,6,7,8,9}; return0; }
例如下标为3,即元素a[3]数值为2
注:数组计数取值范围是【0,数组长度-1】,而不是从1开始。 即上方最后一位只有a[9],而不是a[10]
一维数组的初始化
①和简单变量初始化一样,也可以对数组元素赋初值,一般形式为:
类型名 数组名 [数组长度] = {初值表} ;
注:初值表必须用{}括起来,前边为等(=),后边为分(;)
inta[10]={12,566,44,35,67,45,37,86,46,54};
各个初值之间用“,”相隔开
②C语言规定,只有静态存储的数组才能初始化,,但一般的C编译系统都允许对动态存储的数组赋初值
静态(static)存储的数组没有初始化,所有数组元素赋0
static int a[3]; 等价于 static int a[3]={0,0,0};
也可针对部分初始化,例如a[5]={1,2,3};而后面的两个元素a[3]和a[4]初值为0
对全部元素赋初值时可省略数组长度
intmain() { inta[]={0,1,2,3,4,5,6,7,8,9}; return0; }
(一般避免出错,改善程序可读性,都不要省略数组长度)
2.二维数组的定义和引用
二维数组是最常见的多维数组,主要表示二维表和矩阵
定义形式
类型名 数组名 [行长度][列长度];
intmain() { inta[3][4]; system("pause"); return0; }
如上定义了一个二维数组a,3行4列,共12个元素
引用
数组名 [行下标] [列下标]
同一维数组一样,都从0开始计数,先存放第一行,一行满,转入下一行。a[3][4]第一个元素为
a[0][0],第一行最后一个元素为a[0][3],依次类推
二维数组的初始化
二维数组赋初值有两种方法:
①分行赋初值
即分隔开每一行进行赋值
类型名 数组名 [行长度][列长度]={{第一行初值表}, {第二行初值表}, ··· {第K行初值表}···};
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
注:每一行的初值表都需要用 { } 括起来,而且初值表间也必须使用“,”相隔开
也可对部分赋初值而其余元素为0:
int a[3][3]={{1,2,3},{},{7,8,9}};
分行赋初值时,初值表中列出了全部行,就可以省略行长度
②顺序赋初值
同一维数组一致,但需要注意某一行某一列的初值是否与希望赋予的值相一致
int a[3][3]={1,2,3,4,5,6,7,8,9};
对部分赋初值时,要为不赋初值的元素赋予0,例如只给a[0][2]和a[2][2]赋初值
int a[3][3]={0,0,3,0,0,0,0,0,9};
二、函数
函数是完成特定工作的独立程序模块,包括两种:库函数,自定义函数
例如scanf()和printf()等为库函数,下面的max则为自定义函数 ⬇⬇⬇
intmain() { intmax(intx,inty); inta,b,c; printf("请输入两个数"); scanf("%d,%d",&a,&b); c=max(a,b); printf("max=%d",c); return0; } intmax(intx,inty) { intz; if(x>y)z=x; elsez=y; return(z); }
函数定义
一般形式:
函数类型 函数名 (形式参数表) /*函数首部*/
{
函数实现过程 /*函数体*/
}
doublea(doubleA,doubleB)
表面函数类型为double,函数名为a,有两个形参A和B
参数传递
函数定义时位于首部的参数被称为形参,主调函数的参数被称为实参,两者必须一一对应,数量相同,类型尽量一致
函数结果返回
函数体内的结果可用 return 表达式;将结果传回到main()函数中
return语句的作用有两个:
一、结束函数的运行
二、带着运算结果(表达式的值)返回主调函数
注:return语句只能返回一个值,如果函数产生了多个运行结果,将无法通过return返回
void 不返回结果的函数
void类型函数,表示不返回结果,函数体中可以没有表达式return语句,void类型的函数虽然不直接返回一个值,但它通常以屏幕输出等方式体现
例如在函数中:
void 函数名(形参表)
{
函数体
printf(“ ”);
}
可以以printf(“”)形式输出结果,而不是返回主调函数
数组与函数知识点还是有些抽象的,需要多加练习理解