C语言小课堂开课啦!!!
C语言作为咱们院的必修课,它是非常非常重要滴。首先,什么是C语言呢?
c语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序设计中备受青睐。
今天小编就带大家走进
函数和指针的世界
函数
函数是C语言的重要组成部分。函数相当于把你的程序分成好几部分。当你的程序越来越复杂时,函数的应用就会使你的程序看起来有条理,别人看你的程序的时候也会轻松很多。
一、函数的调用和其原型
1、 在一个函数中调用另一个函数需要具备以下条件:
(1)首先被调用的函数必须是已经定义的函数,且必须是先定义后使用,必须在主函数中做声明。
(2)如果使用库函数,应该在本文件开头用#include指令将调用有关库函数时所需用到的信息“包含”到本文件夹中来。就像如果想用一些数学函数,就要加上#include。
2、 函数的声明和函数的定义中的第一行基本上是相同的,只差一个分号。
3、函数声明的一般形式
(1)函数类型 函数名(参数类型1 参数名1,参数类型2 参数名2,...,参数类型n 参数名n);
(2)函数类型 函数名(参数类型,参数类型2,...,参数类型n);
4、函数的定义是指对函数功能的确立,包括指定函数名、函数值类型、形参及其类型以及函数体等,它是一个完整的、独立的函数单位。
二、函数的嵌套和递归调用
1、函数的定义是互相平行、独立的,也就是说,在定义函数时,不能嵌套定义,但可以嵌套调用函数。
2、在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。
例:
int f(int x)
{
int y,z;
z=f(y);
return(2*z);
}
考验1:用递归方法求 n 阶勒让德多项式的值,递归公式为
指针
指针被称为C语言精华,它最大的特点就是直接操作内存,这个特点直接导致了它不仅可以提高编程效率, 还可以写复杂度更高的数据结构,还能使编写出的程序更加简洁、紧凑。
首先说一下使用指针的优点:
(1)提供程序的效率。
(2)在调用函数时当指针指向的变量的值改变时,这些值能够为主调函数使用,即可以从函数调用得到多个可改变的值。
(3)可以实现动态存储分配。
一、返回指针值的函数
1、一个函数可以返回一个整型值、字符值、实型值等,也可以返回指针型的数据,即地址。
2、一般形式
类型名 *函数名(参数列表);
二、指针核心
1、 首先要准确的弄清楚指针的含义,指针就是地址,凡是出现“指针”的地方,都可以用“地址”代替,变量的指针就是变量的地址,指针变量就是地址变量。
2、 要区别指针和指针变量,指针变量的值是一个地址。
3、地址就意味着指向,因为通过地址能找到具有该地址的对象。
4、指针变量可以用空值,即该指针变量不指向任何变量,可以这样表示:p=NULL;其中NULL是一个符号常量,代表整数0。
考验2:n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的哪位。(要求用指针)
今天的C语言小课堂到这里就结束了!
最后附上考验的答案:
1.#includedouble legendre(int n, int x) { if (n == 0) { return 1; } if (n == 1){ return x; } return ((2 * n - 1)*x - legendre(n - 1, x) - (n - 1)*legendre(n - 2, x)) / n;}int main(){ int n; int x; printf("请输入n的值和x的值\n"); scanf("%d %d", &n, &x); printf("P%d(%d) = %f\n", n, x, legendre(n, x));}2.#includeint main(){ int i,k,n,m,num[50],*p; printf("输入n="); scanf("%d",&n); p=num; for(i=0;i { *(p+i)=i+1; } i=0; k=0; m=0; while(m { if(*(p+i)!=0) { k++; } if(k==3) { *(p+i)=0; k=0; m++; } i++; if(i==n) { i=0; } } while(*p==0) { p++; } printf("最后一个数是:%d\n",*p); return 0;}作为程序员,我们要走的路还很长,打好基础很重要。别忘了还有C++,C#,JAVA,Python等等编程语言在等你呦!
少年,加油!编辑/ 师莹莹
图文/ 光电科技协会
责任编辑/ 王明旭
审核/ 孙超
终审/ 郭金玲