复合语句(compound statement)简称为语句块,它使用大括号把许多语句和声明组合到一起,形成单条语句。语句块与简单的语句不同,语句块不用分号当作结尾。
用括号{}括起来组成的一个语句称复合语句。 在程序中应把复合语句看成是单条语句,而不是多条语句,例如:

{

x=y+z;

a=b+c;

printf(“%d%d”,x,a);

}

就是一条复合语句。

复合语句的作用:

1、作为分支和循环的块;

2、作为标识符的作用域。
C语言中可以将复合语句视为一条单语句,也就是说在语法上等同于一条单语句。——对于一个函数而言,函数体就是一个复合语句,也许大家会因此知道复合语句中不单可以用可执行语句组成,还可以用变量定义语句组成。——要注意的是在复合语句中所定义的变量,称为局部变量,所谓局部变量就是指它的有效范围只在复合语句中,而函数也算是复合语句,所以函数内定义的变量有效范围也只在函数内部

#include <stdio.h>
void pp(void)
{
printf(" {}里是函数体的定义,这里是复合语句,执行顺序是按条执行\n ");
}
main() //main的两个{}中也算复合语句,{}中定义的变量,只能在当前的{}中起作用
{
pp();
//复合语句嵌套使用
{
unsigned int a=0,b=3;
printf("a= %d, b= %d \n",a,b);
}
unsigned int a=5,b=4; //因为前面定义过的,只在其自己的{}中起作用,所以不会影响到后面其{}之外的定义了。
printf("a= %d, b= %d \n",a,b);
}

将"unsigned int a=5,b=4; //因为前面定义过的,只在其自己的{}中起作用,所以不会影响到后面其{}之外的定义了。"这一行注释,看看有错误提示,理解复合语句范围限制,特别是对变量的范围的限制

C语言:复合语句的更多相关文章

  1. [C语言学习笔记五]复合语句和操作符的区分

    复合语句的概念和用法 在部分时候,语句必须要与其他语句相结合才能实现应有的功能.放在花括号 {} 里的代码叫做复合语句. 例如: int a,b; if (a == b) ... ... /* 这一部 ...

  2. C语言文法

    C语言文法 源程序 → 外部声明 | 子程序(外部声明) 外部声明   → 函数定义| 函数声明 函数定义 → 类型标识符(复合句) 标识符类型 → 无类型 | 字符型 | 整型 | 浮点型 整型→ ...

  3. javascript 核心语言笔记 5 - 语句

    表达式在 JavaScript 中是短语(phrases),那么语句(statements)就是 JavaScript 整句或命令,语句以分号结束.表达式计算出一个值,语句用来执行以使某件事情发生 表 ...

  4. C语言基础回顾

    第一章 C语言基础 1.  C语言编译过程 预处理:宏替换.条件编译.头文件包含.特殊符号 编译.优化:翻译并优化成等价的中间代码表示或汇编代码 汇编:生成目标文件,及与源程序等效的目标的机器语言代码 ...

  5. PL/0语言编译器的设计与实现

    一.设计任务 1.1程序实现要求 PL/0语言可以看成PASCAL语言的子集,它的编译程序是一个编译解释执行系统.PL/0的目标程序为假想栈式计算机的汇编语言,与具体计算机无关. PL/0的编译程序和 ...

  6. 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等

    [源码下载] 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等 作者:webabcd 介绍不可或缺 Windows Native  ...

  7. 不可或缺 Windows Native (6) - C 语言: 函数

    [源码下载] 不可或缺 Windows Native (6) - C 语言: 函数 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 函数 示例cFunction.h # ...

  8. C语言异常与断言接口与实现

    程序中通常会出现三种错误:用户错误.运行期错误以及异常 欢迎关注我的个人博客:www.wuyudong.com, 更多精彩文章与您分享 标准库函数setjmp和longjmp 在C语言中,标准库函数s ...

  9. C语言杂谈(三)存储类别

    本文讨论C语言中的存储类别,包括数据在内存的存储.变量的存储类别.函数的存储类别.生存周期.下图为计算机的存储空间,有寄存器和内存. 一.存储区域 1.寄存器:存放立即参加运算的数据. 2.系统区:存 ...

随机推荐

  1. 在gitlab网页上合并分支

    在gitlab网页上合并分支 使用gitlab网页将代码合并分 下面将dev分支代码合并至master 1.点击request merge 2.源分支为当前分支,目标分支默认为master,确认无误, ...

  2. @RequestParam(required = true),@RequestParam(required = true)

    今天在页面请求后台的时候遇到了一个问题,请求不到后台 页面代码 <li>                        <a href="javascript:void(0 ...

  3. Halide应用开发

    Halide应用开发 1. 基本原理 1.1.介绍 随着人工智能的普及,深度学习网络的不断涌现,为了让各硬件(CPU, GPU, NPU,...)能够支持深度学习应用,各硬件芯片需要软件库去支持高性能 ...

  4. VAE变分自编码器实现

    变分自编码器(VAE)组合了神经网络和贝叶斯推理这两种最好的方法,是最酷的神经网络,已经成为无监督学习的流行方法之一. 变分自编码器是一个扭曲的自编码器.同自编码器的传统编码器和解码器网络一起,具有附 ...

  5. 孟老板 BaseAdapter封装 (一) 简单封装

    BaseAdapter封装(一) 简单封装 BaseAdapter封装(二) Header,footer BaseAdapter封装(三) 空数据占位图 BaseAdapter封装(四) PageHe ...

  6. Padavan安装使用ZeroTier实现组建虚拟局域网的方法

    首先到这个网站ZeroTier – Global Area Networking注册登陆,注册及创建网络的过程可以参考网上及其他UP主的教程,我就不重复了. 本篇主要讲述的是hiboy大佬编译的固件在 ...

  7. 基于Typescript的Vue项目配置国际化

    基于Typescript的Vue项目配置国际化 简介 使用vue-i18n插件对基于Typescript的vue项目配置国际化,切换多种语言, 配合element-ui或者其他UI库 本文以配置中英文 ...

  8. Spring Boot WebFlux-04——WebFlux 整合 Thymeleaf

    第04课:WebFlux 整合 Thymeleaf 上一篇介绍的是用 MongoDB 来实现 WebFlux 对数据源的操作,那么有了数据需要渲染到前台给用户展示,这就是本文关心的 View 层,Vi ...

  9. noip2009 总结

    潜伏者 原题 R 国和 S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 S 国的 R 国间谍小 C 终于摸清了 S 国军用密码的编码规则:1. S 国军方内部欲发送的 ...

  10. git命令使用(必备系列)

    git是一个分布式版本控制系统,得益于高效.协作和快速的项目代码管理特性几乎每一个软件开发团队都在深度使用.本篇是对git命令的介绍,涵盖了不低于95%的日常操作命令,对你有用话可以收藏一下哦. 一. ...