IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C中表达式、语句、代码块 -> 正文阅读

[C++知识库]C中表达式、语句、代码块

表达式(Expression)

表达式=运算符+操作数

表达式必须有一个执行结果,这个结果必须是一个值,例如 3*4+5 的结果 17,a=c=d=10 的结果是 10,printf("hello") 的结果是 5(printf 的返回值是成功打印的字符的个数)

运算符

  • 算术运算符→算术表达式
  • 关系运算符→关系表达式
  • 逻辑运算符→逻辑表达式

操作数

函数是被命名的可执行代码块,具有返回值的函数也可以用在表达式中,把其返回值作为构成表达式的操作数,以下为例子:

#include<iostream>

int main(int argc, char** argv)
{
    int sum=printf("hello \n"); //结果:hello
	printf("sum=%d \n",sum); //sum=7
	return 0;    
}

语句(Statement)

以分号;结束的往往称为语句,而不是表达式,例如 3*4+5;a=c=d;

表达式语句

int Sum(int a, int b)
{
  return a + b;
}

int main()
{
  int a =0;
  a;  /*变量表达式*/
  1;  /*常量表达式*/
  a + 1; /*算术表达式*/
  int b = 0;
  b = a; /*赋值表达式*/
  a == b; /*关系表达式*/
  a && b; /*逻辑表达式*/
  a = Sum(a, b); /*函数返回值为赋值表达式的操作数*/
  return 0;
}

函数调用语句

函数调用语句:由函数调用后添加分号构成,一般形式为 函数名(实际参数表);。执行函数调用语句,就是为函数传入实际参数,执行函数中的语句,并根据需要返回值的过程。函数调用语句的返回值也会被丢弃:

#include <stdio.h>

int Sum(int a, int b)
{
  return a + b;
}

int main()
{
  int a = 1;
  int b = 2;
  /*调用自定义函数,未用返回值*/
  Sum(a, b);
  /*调用库函数*/
  printf("a = %d, b = %d\n", a, b);
  return 0;
}

控制语句

  • 条件判断语句(if 语句, switch 语句)
  • 循环执行语句(do while 语句,while语句, for语句)
  • 转向语句(break语句,goto语句,continue语句, return语句)

复合语句

复合语句(compound statement)简称为语句块,它使用大括号把许多语句和声明组合到一起,形成单条语句。

语句块与简单的语句不同,语句块不用分号当作结尾。当出现语法上某处需要一条语句,但程序却需要执行多条语句时,就可以用到语句块。例如,可以在 if 语句中使用语句块,或者当循环体需要执行多条语句时,也可以使用语句块:

{ 
	double result = 0.0, x = 0.0;         // 声明
	static long status = 0;
	extern int limit;
  	++x;                                  // 语句
  	if ( status == 0 )
  	{                                     // 新语句块
     	int i = 0;
     	while ( status == 0 && i < limit )
     	{ /* ... */ }                      // 另一个语句块
  	}
  	else
  	{ /* ... */ }                         // 第三个语句块
}

如果语句块内需要有声明,通常会把声明放在语句块的头部,在其他语句之前。然而,C99 并不强制这么做,允许将声明放在语句块内的任何地方。

在语句块内声明的名称将具有语句块作用域。换句话说,这些名称只有自声明点开始,一直到语句块结尾之前有效。在这个作用域内,这种声明会把在语句块以外声明的同名称对象隐藏起来。

同样地,动态变量的存储周期也被限制在语句块中它们生成的地方。这意味着,如果一个变量没有被声明为 static 或 extern,那么该变量的存储空间会在语句块结束之后自动被释放。

空语句

int main()
{
  int i = 0;
  for (; i < 20; i++)
  {
    /*空语句*/
    ;
  }
  return 0;
}

代码块(Blocks)

代码块概念

和上面提到的复合语句(语句块)其实是相同的概念,所谓代码块,就是由{ }包围起来的代码。代码块在C语言中随处可见,例如函数体、选择结构、循环结构等。
【注意】一般来说代码块花括号后不用加;,但结构体在定义时视为一条完整的语句,所以在花括号后加;

struct stu{
    char *name;  //姓名
    int num;  //学号
    int age;  //年龄
    char group;  //所在学习小组
    float score;  //成绩
};

?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 17:14:26  更:2022-03-12 17:15:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:19:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码