个人学习笔记: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循环结构 |
个人学习笔记:C语言程序结构的更多相关文章
- Objective-C 学习笔记(一) 语言程序结构
Objective-C语言程序结构 “Hello World”简单示例 #import <Foundation/Foundation.h> //预处理命令,它告诉Objective-C语言 ...
- C#学习笔记二:C#程序结构
从最简单的HelloWorld开始入手,这是一个最低限度的C#程序结构. C# Hello World 示例 一个C#程序主要由以下几部分组成: 命名空间声明 一个类 类方法 类属性 一个Main方法 ...
- WP8 学习笔记(002_应用程序结构)
下图是微软官方给出的WP8应用程序执行顺序: 在App.XAML.CS中,有程序主要步骤的函数 // 应用程序启动(例如,从“开始”菜单启动)时执行的代码 // 此代码在重新激活应用程序时不执行 pr ...
- [java学习笔记]java语言核心----面向对象之this关键字
一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理: 代表的是当前对象. this就是所在函数 ...
- IOS学习笔记06---C语言函数
IOS学习笔记06---C语言函数 -------------------------------------------- qq交流群:创梦技术交流群:251572072 ...
- java之jvm学习笔记十三(jvm基本结构)
java之jvm学习笔记十三(jvm基本结构) 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成 ...
- DeepLearning.ai学习笔记(三)结构化机器学习项目--week2机器学习策略(2)
一.进行误差分析 很多时候我们发现训练出来的模型有误差后,就会一股脑的想着法子去减少误差.想法固然好,但是有点headlong~ 这节视频中吴大大介绍了一个比较科学的方法,具体的看下面的例子 还是以猫 ...
- muduo学习笔记(二)Reactor关键结构
目录 muduo学习笔记(二)Reactor关键结构 Reactor简述 什么是Reactor Reactor模型的优缺点 poll简述 poll使用样例 muduo Reactor关键结构 Chan ...
- [java学习笔记]java语言核心----面向对象之构造函数
1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用: 给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...
- Java学习笔记:语言基础
Java学习笔记:语言基础 2014-1-31 最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...
随机推荐
- url的组成部分
/news/index.asp?boardID=5&ID=24618&page=1#name 协议:http: //为分隔符 域名:www.aspxfans.com :为域名和端口之间 ...
- bootstrap入门&栅格系统
一.概述 1. 概念: 一个前端开发的框架,Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JavaScript 的,它简洁灵活,使得 ...
- NOIP 2013货车运输
当然这题有很多做法,但是我看到没有人写DSU的很惊奇 按照之前做连双向边题的经验,这题可以用并查集维护联通 然后对于每个询问\(x,y\),考虑启发式合并 当两个点集\(x,y\)合并时,一些涉及到其 ...
- mvn常见参数命令讲解
关于-N -N,--non-recursive Do not recurse into sub-projects 意思是,不递归到子项目(子模块). 举例: 一个父项目下Father面有3个子项目A. ...
- 利用python实现汉字转拼音
安装:pip install pypinyin import pypinyin # 不带声调的(style=pypinyin.NORMAL) def pinyin(word): s = '' for ...
- Kibana自动关联ES索引
原因: Kibana中关联ES索引需要手动操作,如果ES中索引较多(如每天生成),则工作量会比较大. 方法: 考虑使用Linux的cron定时器自动关联ES索引,原理是调用Kibana API接口自动 ...
- opencv 图像resize
这是文档中的函数原型 cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) 参数说明src:要resize的原图,应该是一个矩阵 dsi ...
- Ubuntu命令行下缩小磁盘镜像img文件尺寸
要解决的问题 一个固件包里的system.img, 尺寸是1GB, 里面的内容只有470MB, 在设备上写入的时候报超出大小了, 所以想把这个img调整为512MB 网上查了很多, 没有一个好用的, ...
- dd命令笔记
dd命令 用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换 参数 if=FILE 指定输入源文件, 缺省为标准输入, < if=input file > iflag=FLAGS 指 ...
- SQLServer : 找中间日期
假设找 一个日期居于[ 2022-03-10, 2022-05-11 ]的正中间