个人学习笔记:C语言程序结构
个人笔记:C语言程序
- 函数
- 语句
- 输入输出对象
- 标识符
- 关键字
函数
一个C语言源程序,是由一个或多个函数定义顺序组成的,其中必须有一个函数名为main的主函数。C语言源程序中的函数是指完成特定数据处理任务、功能上独立的一个程序段。任何一个函数定义都是由函数首部和函数体构成,函数体必须用大括号“{”和“}”括起来,函数体必须紧接在函数首部之后。函数体的成分是由0或多条变量组成的定义序列;1条或多条语句顺序组成的语句序列。
函数定义=函数首部+函数体
int main(void)() //函数首部
{ //函数体
.......
return 0; //返回值
}
函数体的主要成分:变量定义序列+语句序列
int r=5;
int f=3;
int s; //变量定义序列
s=r*f //语句序列
语句
1. 表达式语句
表达式语句由表达式加上分号“;”,执行表达式语句就是计算表达式的值。
x=y+z;z=100 //赋值语句
y+z; //加法运算语句,但计算结果不能保留,无实际意义
i++; //先引用变量i,然后变量i进行自加1运算
++i; //变量i先进行自加1运算,然后对变量i进行引用
2. 函数调用语句
函数调用语句由函数名、实际参数加上分号“;”组成。执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求取函数值。通过调用函数printf(),来实现输出字符串的功能。
形式:函数名(实际参数表);
例:
printf("hello,yinuo!");
3. 控制语句
控制语句是由特定的语句定义符组成,使用控制语句可实现程序的各种结构方式,从而实现对程序流程的控制。
C语言的九种控制语句。可分为以下三类
1)条件判断语句:if语句、switch语句。
2)循环执行语句:do...while语句、while语句、for语句。
3)转向语句:break语句、goto语句(尽量少使用,不利于结构化程序设计)、continue语句、return语句。
4. 复合语句
把多个语句用括号“{}”括起来组成的一个语句称复合语句,复合语句内的各条语句都必须以分号“;”结尾,在括号“}”外不能加分号。复合语句在程序中属于一条语句,不能将它看为多条语句。
{
k=i+j;
a=b+c;
printf{"%d%d\n",k,a};
}
5. 空语句
空语句是由分号“;”组成,并且是什么也不执行的语句,在程序中空语句可用来作空循环体。
int x=4;
++x;
;
printf("%d",x)
输入输出对象
1. 格式化输入函数
scenf()函数的作用是从输入设备输入若干个任意类型的数据。它的函数原型在头文件<stdio.h>中。
一般形式:
scanf ("格式控制字符串",地址列表);
例如
scanf("%d %c",&a,&b);
该函数主要有如下两个参数:
1).格式控制字符串:用来指定每个输入项的输入格式。格式控制字符串通常由“%”和格式字符组成,如%d、%c、%f等。它的作用是确定输入数据的格式,格式说明都是由“%”字符开头的。
常见的scan()函数的格式控制符:
格式控制符 | 字符含义 | 格式控制符 | 字符含义 |
---|---|---|---|
%d,%i | 输入十进制带符合整数 | %f,%e,%E,%g,%G | 输入实数 |
%o | 输入八进制无符合整数 | %c | 输入单个字符 |
%x,%X | 输入十六进制无符号整数 | %s | 输入字符串 |
%u | 输入十进制无符号整数 |
2)地址列表:地址列表给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的。例如,&a表示变量a在内存中的地址,其中&是取地址运算符,其作用是求变量的地址
2. 格式化输出函数
printf()函数的作用是向终端输出若干个任意类型的数据。它的函数原型在头文件<stdio.h>中。
一般形式:
printf(格式控制字符串,输出列表);
该函数主要有如下两个参数:
1).格式控制串:用来指定每个输出项的输出格式,格式控制字符串由格式说明、转义字符和普通字符组成。
普通字符:也称为非格式说明符,按原样输出字符、
转义字符:是以“ \ ”开头的字符
格式说明:以“%”和格式字符组成
常见的printf()函数中使用的格式控制符:
格式控制符 | 字符含义 | 格式控制符 | 字符含义 |
---|---|---|---|
%d,%i | 输出十进制带符合整数,正数不带符合 | %g,%G | 输出%f或%e中宽度最短的单双精度实数 |
%o | 输出八进制无符合整数,无前缀0 | %c | 输出单个字符 |
%x,%X | 输出·十六进制无符号整数,无前缀0x | %s | 输出字符串或字符数组 |
%u | 输出十进制无符号整数 | %p | 输出指针 |
%f | 输出小数形式的实数 | %% | 输出一个% |
%e,%E | 输出指数形式的单双精度实数 |
2).输出列表:是要输出的各项数据,这些数据可以是常量、变量、函数或表达式,其具体类型由格式控制符决定。输出列表的个数必须与格式控制字符串中规定的字符个数一样多,各参数之间“,”分开,且顺序一一对应。
3. 字符的输入函数
getchar()函数是字符输入函数,作用是从标准输入设备上输入一个字符,在同一个时间只能读取一个单一的字符
使用语法:
getchar();
注意
1).使用gatchar()函数输入时,都是转换为ASCII码值来存储,所以getchar()函数读取一个字符,返回的是一个整数
2).getchar()函数没有参数,单括号不能省略。输入数字也必须按字符处理。当输入多个字符时,只能接收第一字符。
3).在程序中使用gatchar函数,必须在程序的开头加上编译预处理命令,即:#include<stdio.h>
在C程序中,通常把输入的字符赋予一个字符变量,使其构成一个赋值语句,语句如下:
char x; //定义字符变量x
x = getchar(); //从键盘输入一个字符,然后将字符的值赋给变量x
4. 字符的输出函数
putchar()函数是字符输出函数,作用是向标准输出设备上输出一个字符,同一时间内只能输出一个单一的字符。
语法格式:
putchar(ch);
注意:
1).其中的ch可以是常量、变量、转义字符或表达式等,其数据类型可以是字符型或整形,如果是整形数据,代表的是与一个字符相对应的ASCII码值
2).在程序中使用putchar函数,必须在程序的开头加上编译预处理命令,即:#include<stdio.h>
3).putchar函数只能用于单个字符的输出,且一次只能输出一个字符
标识符
在程序中使用的变量名、函数名、标号等统称为标识符,除库函数的函数名由系统定义外,其余都是由用户定义
命名必须遵循以下基本规则:
1.标识符只能是由英文字母“AZ,az”、数字“0~9”和下划线“_”组成的字符串 ,并且第一个字符必须是字母或下划线。
2.标识符不能是C语言的关键字
3.在标识符中,大小写是有区别的。
4.标识符命名尽量有相应的意义,以便阅读理解。
关键字
关键字是C程序中的保留字,在C语言的编写中不允许标识符与关键字相同,ANSI C标准一共规定了32个关键字。
关键字 | 用途 | 说明 |
---|---|---|
auto | 存储种类说明 | 用以说明局部变量,默认值为此 |
break | 程序语句 | 退出最内层循环体 |
case | 程序语句 | switch语句中的选择项 |
char | 数据类型说明 | 单字节整型数或字符型数据 |
const | 存储类型说明 | 在程序执行过程中不可更改的常数值 |
continue | 程序语句 | 转向下一次循环 |
default | 程序语句 | switch语句中的失败选择项 |
do | 程序语句 | 构成do...while循环结构 |
double | 数据类型说明 | 双精度浮点数 |
else | 程序语句 | 构成if...eles选择结构 |
enum | 数据类型说明 | 枚举 |
exterm | 存储类型说明 | 在其他程序模块中说明了的全局变量 |
float | 数据类型说明 | 单精度浮点数 |
for | 程序语句 | 构成for循环 |
goto | 程序语句 | 构成goto转移结构 |
if | 程序语句 | 构成if...else选择循环 |
int | 数据类型说明 | 基本型整数 |
long | 数据类型说明 | 长整型数 |
register | 存储类型说明 | 使用CPU内部寄存的变量 |
return | 程序语句 | 函数返回 |
short | 数据类型说明 | 短整型数 |
signed | 数据类型说明 | 有符号数,二进制数据的最高位为符号位 |
sizeof | 运算符 | 计算表达式或数据类型的字节数 |
static | 存储类型说明 | 静态变量 |
struct | 数据类型说明 | 结构类型数据 |
switch | 程序语句 | 构成switch选择结构 |
typedef | 数据类型说明 | 重新进行数据类型定义 |
union | 数据类型说明 | 联合类型数据 |
unsigned | 数据类型说明 | 无符号数据 |
void | 数据类型说明 | 无类型数据 |
volatile | 数据类型说明 | 该变量在程序执行中可被隐含地改变 |
while | 程序语句 | 构成while和do...while循环结构 |