当前位置: 首页 > article >正文

C语言导航 4.1语法基础

第四章 顺序结构程序设计

第一节 语法基础

  • 语句概念

  • 语句详解

  • 程序详解

4.1.1语句概念

说明:构成高级语言源程序的基本单位。

特征:在C语言中语句以分号作为结束标志。

分类:

(1)简单语句:空语句、表达式语句、return语句、break语句、continue语句、goto语句、函数调用语句。

(2)结构语句:复合语句、选择语句、循环语句。

4.1.2语句详解

1.简单语句

(1)空语句:只有一个分号的语句。

(2)表达式语句:用表达式进行计算的语句,是程序中最常用的语句。

(3)return语句:用于函数的返回。

(4)break语句:用于退出循环或switch结构。

(5)continue语句:用于结束本次循环。

(6)goto语句:将程序控制转向标号处,极不推荐使用。

(7)函数调用语句:用于函数调用。

2.结构语句

(1)复合语句:用“{”、若干语句、“}”组合起来的语句,在逻辑上是一条语句。

(2)选择与循环语句:与选择结构与循环结构有关的语句。

4.1.3程序详解

说明:程序的编写如同写作,无硬性要求,情况多变,但最基本的简单程序如[程序现场]4-1-3所示,对于分支结构、循环结构、函数的调用等复杂行为不作描述。

1.预处理指令

位置:[程序现场]4-1-3中第1行。

作用:指示编译器在编译之前准备需准备的内容,主要为编译时将人为简化的内容转换成标准的内容,因此仅参与编译,不参与执行。

内容:

指令作用
#define宏定义,可以定义符号常量、运算符
#include包含,包含一个源代码文件
#undef取消已定义的宏
#ifdef如果宏已经定义,则返回真
#ifndef如果宏没有定义,则返回真
#if如果给定条件为真,则编译下面代码
#else当前一个#if条件未执行,则执行本指令下的代码
#endif结束一个#if……#else条件编译的块
#error当遇到标准错误时,输出错误消息
#pragma使用标准化方法,向编译器发布特殊的命令到编译器中

说明:该程序预处理了包含指令,其中包含指令包含的内容为stdio.h文件。

2.主函数名

位置:[程序现场]4-1-3中第2行。

说明:主函数为C程序入口和出口,程序中有且仅有一个,其中函数名定义了输入数据类型与输出类型。

输入:主函数参数列表完整为( int argc , char *argv[] ),其中argc存放的为命令行参数argv的个数,argv存放的内容为程序名称、所在文件夹地址等信息。

输出:采用数据类型定义函数即定义返回值类型。

3.主函数体

位置:[程序现场]4-1-3中第3行至第12行。

说明:是程序最先开始及最后执行的部分。

4.定义

位置:[程序现场]4-1-3中第4行。

说明:在C语言中任何变量都应定义,表明其存在性后才能使用。

5.函数

位置:[程序现场]4-1-3中第5行至第6行和第9行。

说明:调用函数以简化程序的编写,该函数为系统函数,是stdio.h文件中的内容。

6.注释

位置:[程序现场]4-1-3中第5行和第7行。

说明:为方便看懂程序而写下的内容,其内容不参与编译,有两种注释形式。

分类:

形式作用
//用于单行注释,注释后的内容不参与编译。
/* …… */用于多行注释,注释里的内容不参与编译。

7.算法

位置:[程序现场]4-1-3中第8行。

说明:完成程序任务的主要内容,其变化多样,但有可行性、确定性、有穷性、可输入/输出性这几个特征。

8.返回值

位置:[程序现场]4-1-3中第11行。

说明:在完成程序任务后,向调用者提供的运算结果,需要更具函数名类型选择返回类型。

【程序现场】4-1-3
 #include<stdio.h>
 int main()
 {
     int a,b;
     printf("Input a b:");   //提示
     scanf("%d%d",&a,&b);
     /*计算过程*/
     int t=a<b?b-a:a-b;
     printf("The difference between a and b is %d",t);   
     
     return 0;
 }

http://www.kler.cn/a/399144.html

相关文章:

  • MySQL技巧之跨服务器数据查询:基础篇-A数据库与B数据库查询合并--封装到存储过程中
  • 【第五课】Rust所有权系统(一)
  • 深度学习transformer
  • uniapp 实现tabbar分类导航及滚动联动效果
  • 机器学习-37-对ML的思考之机器学习发展的三个阶段和驱动AI发展三驾马车的由来
  • 华为开源自研AI框架昇思MindSpore应用案例:人体关键点检测模型Lite-HRNet
  • LeetCode --- 143周赛
  • STM32 HAL 矩阵按键(轮询方式)
  • Android 项目依赖库无法找到的解决方案
  • 活着就好20241118
  • 海康IPC接入TRTC时,从海康中获取的数据显示时色差不正确
  • 使用 PyTorch 实现 AlexNet 进行 MNIST 图像分类
  • 从零开始学习 sg200x 多核开发之 milkv-duo256 编译运行 sophpi
  • Visual Studio 2022 安装
  • RabbitMQ 在 Java 和 Spring Boot 中的应用详解
  • 工厂模式-工厂方法模式实现
  • C语言进阶3:字符串+内存函数
  • Qt 每日面试题 -10
  • Oracle OCP认证考试考点详解082系列19
  • 【微服务】SpringBoot 整合ELK使用详解
  • git入门环境搭建和gui使用
  • 《目标检测》R-CNN网络基础(RCNN,Fast-RCNN)
  • 笔记01----Transformer高效语义分割解码器模块DEPICT(即插即用)
  • 【配置后的基本使用】CMake基础知识
  • opc da 服务器数据 转 IEC61850项目案例
  • 人工智能+辅助诊疗