C语言有5种类型的语句:
(1)表达式语句包括:运算符表达式语句、赋值语句。
(2)流程控制语句包括结构化语句和非结构语句;
A.结构化语句包括:条件语句和循环语句;
a.条件语句包括:if语句和switch语句;
b.循环语句包括:while语句、do while语句和for语句。
B.非结构化语句包括:限定转向语句和非限定转向语句;
a.限定转向语句:break语句、continue语句和return语句;
b.非限定转向语句:goto语句。
函数:为完成一定功能的可执行代码块。函数的定义、声明和调用等。
函数是C语言源程序的基本功能单位。
函数的调用:由另一个函数触发,但函数的定义都是平行的,即:不允许把一个函数定义在另一个函数内,不同函数定义放置位置没有关系。
函数定义4要素:参数列表、返回类型、函数名和函数体。
形式:
返回类型 函数名(参数列表)
{
函数体;
}
(1)参数列表
形式:类型 变量名1,类型 变量名2,类型 变量名3,……;
注:如果参数列表为空,可以填“void”,但“()”不可省略;
(2)返回类型:指明函数输出的类型;
注:如果没有输出值,返回类型为void,如果在函数定义时没有注明返回类型,默认为int。
(3)函数名:标示该函数,和其他函数区分。
(4)函数体:实现特定功能的代码块;注:在函数体内声明的变量不能和参数列表中的变量同名。
形参:函数定义时列表中的参数;(直到被调用时,系统才给分配存储空间,函数执行结束返回时。创建的形参被撤销)
实参:函数调用时传递进来的参数。
传址调用
例子:
#include<stdio.h>
#include<conio.h>
void swap(int*a,int *b);
void swap(int*a,int *b) //函数头,传递的是指针
{
int temp;
printf("a is %d,b is%d\n",*a,*b); /*两个形参交换前输出,间接访问*/
temp=*a; //临时变量
*a=*b;
*b=temp;
printf("a is %d,b is%d\n",*a,*b); //两个形参交换之后输出
}
void main(void)
{
int num1=3,num2=5;
printf("num1 is %d,num2 is%d\n",num1,num2); //函数执行前输出
swap(&num1,&num2); //函数调用,实参是两个变量的地址
printf("num1 is %d,num2 is%d\n",num1,num2); //函数执行后输出
getch();
}
结果:
num1 is 3,num2is 5
a is 3,b is 5
a is 5,b is 3
num1 is 5,num2is 3
函数返回
定义:
int bigger(int a,int b)
{
if(a>b)
return a; //返回值
else
return b;
}
结构化除了控制结构:顺序、分支和循环外,还有模块化设计。对于模块:一个入口一个出口。