首先我们要明确一点,第一大章是一个总括类型的章节,所以,像数组,函数这种在后面重点的内容在这里也有出现,初学者不必担心,这本教材的入门门槛确实比c prime plus那种要高。
数组
好,这里出现了一个统计各个数字,空白符及其他字符的例子:(运用了数组)
#include<stdio.h>
int main(void) {
int c, i, nwhite, nother;//n+一个单词,不必觉得名字高大上
int ndight[10];
nwhite = nother = 0;
for (i = 0; i < 10; ++i)
ndight[i] = 0;
while ((c = getchar()) != EOF)
if (c >= '0' && c <= '9')//&&是并且的意思,就是两个条件都要满足,也就是c大于等于0小于等于9,但是我们要这样写才行
++ndight[c - '0'];//是数字几,就在数组中第几个位置出现它的出现次数的值
else if (c == ' ' || c == '\n' || c == '\t')// || 是或的意思,之前提到过
++nwhite;//空白符数量加一
else
++nother;//其他符号数量加一
printf("digits=");
for (i = 0; i < 10; ++i)
printf(" %d", ndight[i]);
printf(",white space=%d,other=%d\n", nwhite, nother);
return 0;
}
这里主要注意那个数组的意义,他就是比较直接的表示出,1-9这些数字,具体到每一个出现了几次,比如,我输入两个1,三个4出来的是这样的:
当然,这里打ctrl z 前的回车算到了white space里。我们可以看到数字1的位置是2,数字4的位置是3,这也就是他们出现的次数(第一个位置是0的次数)
这种方法还有一些别的应用,思路是相同的,也许改变了要统计的东西,我们针对要求进行操作即可。
函数
其实我们一开始就在跟函数打交道了,没错,main就是一个函数,他是程序的主函数,我们的程序要在这个函数里才能运行。
1个C程序可以由1个或多个函数构成,但必须有1个函数名为main,这句话表明,我们打的这些代码,都是离不开函数的。
有的函数是可以直接调用的,比如,我们的main函数,你只需先引用一个头文件<stdio.h>
就可以调用这个main函数了,再比如,我们引用一个<math.h>头文件,之后可以引用sqrt,abs等函数。也就是说,这些库中的函数是有人给你编好的,你只需要引用,然后函数去实现它的功能。那么现在让你去实现一个功能,没有现成的函数来满足,你就需要自己编一个函数,让它来帮助你实现要求。
好,来看课本上的例子:
#include<stdio.h>
int power(int m, int n);//声明函数
int main(void) {
int i;
for (i = 0; i < 10; ++i)
printf("%d %d %d\n", i, power(2, i), power(-3, i));//power(2, i), power(-3, i)都是在引用函数
return 0;
}//主函数结束
//定义函数
int power(int base, int n) {
int i, p;
p = 1;
for (i = 1; i <= n; ++i)
p = p + base;
return p;
}
打印结果如下:
可以看到,这里面定义了一个叫power的函数,定义两个形参 base n,这个形参是什么意思呢,首先,它明确了这个函数调用的话,要有两个实参,拿power(2, i)来说,2的值就会给base,然后base会带着这个值在power函数中加入运算,i在for循环中也会依次被赋予0-9的值,也就是n会一次取0-9的值参与运算。然后函数中定义两个变量i,p,注意,这里的i与主函数中的i无关,只是表面上名字一样,这个i只在power函数中被赋值并参与运算。然后一个for循环将p,base代入运算,最后return p得到p的值,也就是power(2, i)的值。
注意 power(2, i),假如i是0,那么n是0,在for循环中不满足条件i<=n,所以不进行for循环,直接得到p的值也就是1
好,这就是一个简单的函数调用的例子。
我们要注意几点:
1.声明函数,我们最好是在主函数前int power(int m, int n);以这样的形式声明函数,这个语句在程序中没有任何实质作用,但是它很直接告诉看代码的人我要用到哪个函数,这个就叫做规范,在学校就要养成这样打代码的习惯。
2。调用函数,我们一般就直接以 函数名(参数,参数...)的形似引用就行,你函数定义用了几个形参,你调用时就要给几个参数
3.定义函数int power(int m, int n){
} 放在主函数后面,这也是格式规范,因为看代码的人不会去看这个函数具体怎么实现的,就跟我们用main函数一样,我们不会去看main是怎么实现的。
好,这里就是本节的内容,数组跟函数是重要的知识,这里属于简单涉及和讲解,还请读者以后深入了解。