`
麦田的守望者tian
  • 浏览: 2833 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

C语言数组与函数

 
阅读更多
数组:具有相同数据类型数据的有序集合
1、具有相同数据类型
2、数据的集合
3、有序的
数组的分类:
1、一维数组
2、多维数组(二维数组)
一维数组的声明:
数据类型 数组名[常量];
数组元素:数组名[下标]
下标取值:0 ~ 常量 - 1
一维数组的常用操作:
1、查找数据
2、插入
1、从倒数第二个数据开始往后移
2、通过修改下标,使得待插入位置之后的所有数据都往后移
3、使用待插入的数据替换指定位置的数据
3、删除
1、位置
2、数据
排序:
1、冒泡排序
2、快速排序
时间复杂度:程序都是由算法组成,而算法有效率的区别,算法在对数据处理过程中,随着数据的增加,
与所需时间的比例关系;时间复杂度越低,程序执行效率越高
二维数组声明:
数据类型 数组名[行][列];
例如:
int numbs[2][3];
double numbs[5][2];
数据存储量为:行 X 列
二维数组的初始化:
int numbs[2][3] = {1,2,3,4,5,6};
int numbs[2][3] = {
{1,2,3},
{4,5,6}
};
int numbs[][3] = {
{1,2,3},
{4,5,6}
};
int numbs[5][2] = {
{1},
{2,3},
{4}
};
二维数组元素:
数组名[行下标][列下标];
行下标:0 ~ 行 - 1
列下标:0 ~ 列 - 1
一维数组在内存中存储方式:
从第一个数组元素开始,所有的数组元素是,依次连续存储的
二维数组在内存中存储方式:
C 语言中,所有数据的存储采用行存储模式,下一行第一个数组元素的地址,在上一行最后一个数组元素
之后,而且是连续的

字符数组
一维字符数组声明:
char 数组名[常量];
一维字符数组初始化:
char 数组名[常量] = {字符1,字符2,...,字符n};
char 数组名[] = {字符1,字符2,...,字符n};
char 数组名[常量] = "字符串";
char 数组名[] = "字符串";
%s :只对字符数组有用
注意:scanf 函数不会接收空格和 '\n'
字符二维数组初始化:
char arr[2][10] = {
{'a','b','c'},
{'d','e'}
};
char arr[][10] = {
{'a','b'},
{'c'},
{'d','e','f'}
};
char arr[2][10] = {
"haha",
"hehe"
};
注意:二维数组的数组名[行下标]就等于一维数组

函数:具有完成单个独立功能的,代码的集合
注意:函数应该功能单一
函数的分类:
用户角度:
1、库函数
2、自定义函数
返回值角度:
1、无返回值函数(void)
2、有返回值函数
参数角度:
1、无参函数
2、有参函数
函数的声明(函数原型)
返回值类型 函数名(行参列表);
double add(double x,double y);
返回值类型 函数名(行参类型列表);
double add(double,double);
函数的定义
返回值类型 函数名(行参列表){
// 函数体
}
double add(double x,double y){
return x + y;
}
函数名:动词 或则 动词+名词
注意:C 语言中,所有函数是平行,而且同一项目中,函数名不能相同
函数的调用
1、函数语句(printf("^_^");)
2、表达式(c = getchar();)(必须有返回值)
3、实参(putchar(getchar());)(必须有返回值)
行参:其实也是函数内部的变量,但是它的数据的初始化,来源与函数调用时候的实参,就是函数定义的
时候,函数名后面括号中的变量
实参:就是调用函数的时候,传递给对应行参变量数据的表达式;实参数量必须和行参相等,而且类型兼容

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics