C语言笔记(二维数组-函数) 下载本文

内容发布更新时间 : 2024/12/23 10:47:40星期一 下面是文章的全部内容请认真阅读。

二维数组

我们以前学过的数组叫一维数组(只有一行) 二维数组,有行有列 0 1 2 3 0 1 2 3 4 1 5 6 7 8 2 9 10 11 12 如何来定义二维数组

格式:类型标识符 数组名[行的长度][列的长度];

Int a[3][4] 讨论一下究竟有多少元素?元素个数=行的长度*列的长度 意义:定义了一个二维数组名为A含有12个元素,每个元素都是一个整形变量,他们是:

a[0][1],a[0][2]…对于第一行而言,行的下标都是零。

规律:对于每一行而言,行的下标不会改变,列的下标改变。

给二维数组赋初值(实际上是给二维数组中的每个元素付出只) 1)int a[3][4]={1,2,3,4, 5,6,7,8, 9,10,11,12} ; 必须要会认,最基本的,比如a[2][0],分组后是9

2)int a[3][4]={1,2,3,4},{5,6,7,8}{9,10,11,12}; 3)可以省略行,但不能省略列

A:iint a[][4]= {1,2,3,4, 5,6,7,8, 9,10,11,12} ; B:int a[][4] ={1,2,3,4},{5,6,7,8}{9,10,11,12};

4) int a[3][4]={1,2,3,4, 5,6,7,8, 9,10,11} ;可以少赋值,自动填0 a[2][3]=0

5) int a[][4] ={1,3,4},{5,6,7,8}{9,10,11,12}; a[0][3]=0 注意:

1)二维数组的复制原则,是要优先满足前面的行,然后再来满足后面的行

2)二维数组行的长度用来表明共有多少行,列的个数用来表明每行的元素个数

二维数组的输出

1)有数组就要循环2)e二维数组也要循环,是循环嵌套 我们肯定要输出三行,每行要输出四个数据 第i行第j个元素:for(i=0;i<3(行的长度);i++)

{for(j=0;j<4(列的长度);j++)

{printf(“%d”,a[i][j]);}//如果内循环做完了,表示第i行

就输出完了

printf(“/n”);}

一维字符型数组

Char a[5]这个数组含有五个元素,每个元素都是一个字符型变量。 如何来定义一维字符型数组 Char 数组名[长度]

Char a[5]定义了一个数组a,它里面含有五个元素,每个变量都是字符型

如何赋初值

1)一维字符型数组从整体上看就是一个字符串,每一个元素还是字符 Char a[5] abcde 思考:是挨在一起存储,还是分开存储? 答:既然是数组,就会挨在一起存储,就是一个字符串。 2)关于字符串的结束符号/0

A:\\0虽然有两个字符,但就是一个字符,不是字符串 是’\\0’,不是“\\0”

B:每当C程序在用到字符串时,C就会偷偷在字符串的最后加上一个结束标记\\0,用户是看不到的

C:用户可以根据需要在字符串的任意位置加上\\0 D:\\0告诉C程序字符串到此为止

3)char a[5]={‘a’,’b’,’c’,’d’,’e’};(错误的) char a[5]={‘a’,’b’,’c’,’d’ }; 至少应该留一个空位来存放\\0 Char a[5]={“abcd”}

Char a[]={“asdfghjkj”}像气球一样想吹多大吹多大(用的最多) Char a[]=“asdfghjkj”

一维字符数组的输入和输出 输出:

A:分别输出 for(i=0;i

1)格式:Puts(数组名);只有对字符型数组才可以用puts,整实型数组输出的唯一方法是 分别输出 2)printf(“%s”,数组名);

区别:puts可以换行,printf不能换行 Eg:Char a[]={“asdf”},b[]={“asdf”}; Printf(“%s”,a);

Printf(“%s”,b); //结果是asdfasdf Puts(a);

Puts(b); //结果是 asdf asdf 输入:

1)整体输入:scanf(“%s”,数组名)不要加取地址符 2)gets(数组名)

注意:scanf不能输入空格,会被当成\\0; gets可以输入任何字符,尽量采用gets

如果是对于一维数组而言,他们的输入方式一般用整体输入输出, 而其他数组只能分别输入和输出

函数

什么是函数?

特征:1)必须要完成某个功能功能 2)函数必须要有名字 3)为了完成某个功能的代码段(块) 为什么要使用函数? 一个公司的发展与壮大

1,是不是只有老板一个人(团队合作)

财务部、销售部、公关部、策划部(各负其责,分工) 2,学校:校长,主任,教师,学生(分工) 生产流水线,先分工再整合

答案:是为了实现模块化设计(分工)

函数的分类

1)按照功能分类: 1.系统函数(标准函数):是C已经做好的函数,直接拿来使用即可,我们不了解函数的实现代码。比如printf函数,不需要知道它的工作原理,因为那不是用户的任务,用户的任务是使用。 2.用户自定义函数:系统函数虽然不需要用户做,但是系统函数的功能毕竟是有限的,为了得到功能更强大的函数,所以需要用户自己编写一些函数。

2)按有无参数分类:

1.有参函数:printf(“123456”); 2.无参函数:getchar();

总结:系统函数:有参数,无参数

无参函数:有参数,无参数

如何定义函数?

1,无参数的定义格式:

Void 函数名() { 代码 }

说明:A:函数名可由用户自取,与变量名一致但要符合C程序的语法规则