决策结构要求程序员指定一个或多个要由程序评估或测试的条件,以及如果条件被确定为真则要执行的一个或多个语句,以及可选地,如果条件确定则要执行的其他语句被判定为假。 以下是大多数编程语言中典型决策结构的一般形式 - C++编程语言提供了以下几种决策语句。 Sr.No 声明和说明 1 if 语句 “if”语句由一个布尔表达式和一个或多个语句组成。 2 if...else 语句 “if”语句后面可以跟一个可选的“else”语句,当布尔表达式为假时执行。 3 switch 语句 “switch”语句允许根据值列表测试变量是否相等。 4 嵌套 if 语句 您可以在另一个“if”
可能有一种情况,当您需要多次执行一段代码时。一般来说,语句是按顺序执行的:函数中的第一条语句首先执行,然后是第二条,依此类推。 编程语言提供了各种控制结构,允许更复杂的执行路径。 循环语句允许我们多次执行一个语句或一组语句,以下是大多数编程语言中循环语句的一般来源 - C++ 编程语言提供以下类型的循环来处理循环需求。 Sr.No 循环类型和描述 1 while 循环 在给定条件为真时重复一个语句或一组语句。它在执行循环体之前测试条件。 2 for 循环 多次执行一系列语句,并缩写管理循环变量的代码。 3 do...while 循环 类似于“while”语句,只是它在循
运算符是一个符号,它告诉编译器执行特定的数学或逻辑操作。 C++ 内置了丰富的运算符,并提供以下类型的运算符 - 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本章将对算术、关系、逻辑、按位、赋值等运算符一一进行考察。 算术运算符 C++ 语言支持以下算术运算符 - 假设变量 A 为 10,变量 B 为 20,则 - 显示示例 算子 描述 示例 + 添加两个操作数 A + B 将给 30 - 从第一个操作数中减去第二个操作数 A - B 将给出 -10 * 两个操作数相乘 A * B 会给出 200 / 分子除以反分子 B/A 会给出 2 % 取模
存储类定义 C++ 程序中变量和/或函数的范围(可见性)和生命周期。这些说明符在它们修改的类型之前。有以下存储类,可以在C++程序中使用 自动 注册 静态 外部 可变的 自动存储类 自动 存储类是所有局部变量的默认存储类。 { int mount; auto int month; } 上例定义了两个具有相同存储类的变量,auto只能在函数内部使用,即局部变量。 寄存器存储类 注册 存储类用于定义应存储在寄存器而不是 RAM 中的局部变量。这意味着该变量的最大大小等于寄存器大小(通常是一个字),并且不能对其应用一元 & 运算符(因为它没有内存位置)。 { reg
C++ 允许 char, int, 和 双重 数据类型前面有修饰符。修饰符用于改变基类型的含义,使其更准确地适应各种情况的需要。 此处列出了数据类型修饰符 - 签名 未签名 长 短 修饰符 signed, unsigned, long, 和短 可以应用于整数基类型。此外,签名 和无符号 可以应用于 char 和 long 可以应用于double。 修饰符签名 和无符号 也可以用作 long 的前缀 或短 修饰符。例如,unsigned long int . C++ 允许使用简写符号来声明 unsigned, short, 或长 整数。您可以简单地使用 unsigned, shor
常量是指程序可能不会改变的固定值,它们被称为 literals . 常量可以是任何基本数据类型,可以分为整数、浮点数、字符、字符串和布尔值。 同样,常量的处理方式与常规变量一样,只是它们的值在定义后不能修改。 整数字面量 整数文字可以是十进制、八进制或十六进制常量。前缀指定基数或基数:0x 或 0X 表示十六进制,0 表示八进制,没有任何内容表示十进制。 整数文字也可以有一个后缀,它是 U 和 L 的组合,分别表示无符号和长整数。后缀可以大写也可以小写,顺序不限。 以下是整数文字的一些示例 - 212 // Legal 215u // Legal 0x
范围是程序的一个区域,从广义上讲,可以在三个地方声明变量 - 在称为局部变量的函数或块中, 在函数中定义的参数称为形参。 在所有函数之外称为全局变量。 我们将在后续章节中了解什么是函数及其参数。下面我们来解释一下什么是局部变量和全局变量。 局部变量 在函数或块中声明的变量是局部变量。它们只能由该函数或代码块内的语句使用。局部变量对于它们自身之外的函数是未知的。以下是使用局部变量的示例 - 现场演示 #include <iostream> using namespace std; int main () { // Local variable d
变量为我们提供了程序可以操作的命名存储。 C++中的每个变量都有一个特定的类型,它决定了变量内存的大小和布局;可以存储在该内存中的值的范围;以及可以应用于变量的操作集。 变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下划线开头。大写和小写字母是不同的,因为 C++ 区分大小写 - 如上一章所述,C++ 中有以下基本类型的变量 - Sr.No 类型和描述 1 布尔 存储值 true 或 false。 2 字符 通常是一个八位字节(一个字节)。这是一个整数类型。 3 int 机器最自然的整数大小。 4 浮动 单精度浮点值。 5
程序注释是可以包含在 C++ 代码中的解释性语句。这些注释可以帮助任何人阅读源代码。所有编程语言都允许某种形式的注释。 C++ 支持单行和多行注释。 C++ 编译器会忽略任何注释中可用的所有字符。 C++ 注释以 /* 开头,以 */ 结尾。例如 - /* This is a comment */ /* C++ comments can also * span multiple lines */ 注释也可以以 // 开头,延伸到行尾。例如 - 现场演示 #include <iostream> using namespace std; main() { c
当我们考虑 C++ 程序时,它可以定义为通过调用彼此的方法进行通信的对象的集合。现在让我们简要了解一下类、对象、方法和即时变量的含义。 对象 − 对象具有状态和行为。示例:一只狗有状态——颜色、名字、品种以及行为——摇摆、吠叫、进食。对象是类的一个实例。 类 − 一个类可以定义为一个模板/蓝图,描述其类型的对象所支持的行为/状态。 方法 − 方法基本上是一种行为。一个类可以包含许多方法。它是在编写逻辑、操作数据和执行所有操作的方法中。 实例变量 − 每个对象都有其唯一的实例变量集。对象的状态是由分配给这些实例变量的值创建的。 C++ 程序结构 让我们看一个简单的
本地环境设置 如果你还愿意搭建C++环境,你的电脑需要有以下两个软件。 文本编辑器 这将用于键入您的程序。少数编辑器的示例包括 Windows 记事本、操作系统编辑命令、Brief、Epsilon、EMACS 和 vim 或 vi。 文本编辑器的名称和版本可能因操作系统而异。例如,记事本将在 Windows 上使用,vim 或 vi 可以在 Windows 以及 Linux 或 UNIX 上使用。 您使用编辑器创建的文件称为源文件,对于 C++,它们通常以扩展名 .cpp、.cp 或 .c 命名。 应该有一个文本编辑器来开始你的 C++ 编程。 C++ 编译器 这是一个实际的 C+
C++ 是一种静态类型、编译、通用、区分大小写、格式自由的编程语言,支持过程式、面向对象和泛型编程。 C++被视为中级 语言,因为它包含高级和低级语言特征的组合。 C++ 由 Bjarne Stroustrup 于 1979 年在新泽西州默里山的贝尔实验室开发,作为对 C 语言的增强,最初命名为 C with Classes,但后来在 1983 年更名为 C++。 C++ 是 C 的超集,几乎所有合法的 C 程序都是合法的 C++ 程序。 注意 − 一种编程语言在编译期而不是运行期执行类型检查时被称为使用静态类型。 面向对象编程 C++完全支持面向对象编程,包括面向对象开发的四大支柱
可以在执行时将一些值从命令行传递给您的 C 程序。这些值称为命令行参数 很多时候它们对您的程序很重要,尤其是当您想从外部控制程序而不是在代码中硬编码这些值时。 命令行参数使用 main() 函数参数处理,其中 argc 指传递的参数个数,argv[] 是一个指针数组,它指向传递给程序的每个参数。下面是一个简单的例子,它检查是否有从命令行提供的任何参数并采取相应的措施 - #include <stdio.h>int main( int argc, char *argv[] ) { if( argc == 2 ) { printf(The argument suppl
本章介绍 C 中的动态内存管理。C 编程语言提供了多种内存分配和管理功能。这些函数可以在 中找到 头文件。 Sr.No. 功能与说明 1 void *calloc(int num, int size); 此函数分配 num 的数组 每个元素的字节大小将为 size . 2 void free(void *address); 该函数释放地址指定的一块内存块。 3 void *malloc(size_t size); 此函数分配 num 的数组 字节并保持它们未初始化。 4 void *realloc(void *address, int newsize
有时,您可能会遇到一种情况,当您想要一个函数时,该函数可以接受可变数量的参数,即参数,而不是预定义数量的参数。 C 编程语言为这种情况提供了解决方案,您可以定义一个可以根据您的要求接受可变数量参数的函数。下面的例子展示了这样一个函数的定义。 int func(int, ... ) { . . . } int main() { func(1, 2, 3); func(1, 2, 3, 4); } 需要注意的是函数func() 最后一个参数是省略号,即三个点 (... ) 并且省略号之前的始终是 int 这将表示传递的变量参数的总数。要使用此类功能,您需要使用
递归是以自相似的方式重复项目的过程。在编程语言中,如果一个程序允许你在同一个函数内部调用一个函数,则称为函数的递归调用。 void recursion() { recursion(); /* function calls itself */ } int main() { recursion(); } C 编程语言支持递归,即调用自身的函数。但是在使用递归的时候,程序员需要注意在函数中定义一个退出条件,否则会陷入死循环。 递归函数对于解决许多数学问题非常有用,例如计算一个数的阶乘、生成斐波那契数列等。 数字阶乘 以下示例使用递归函数计算给定数字的阶乘 - 现场演示 #i
因此,C 编程不提供对错误处理的直接支持,而是作为一种系统编程语言,它以返回值的形式为您提供较低级别的访问。大多数 C 甚至 Unix 函数调用在出现任何错误时都返回 -1 或 NULL 并设置错误代码 errno .它被设置为全局变量,并指示在任何函数调用期间发生错误。您可以在 头文件中找到各种错误代码。 因此,C 程序员可以检查返回值并根据返回值采取适当的措施。在初始化程序时将 errno 设置为 0 是一种很好的做法。值为0表示程序没有错误。 错误号,错误()。和 strerror() C 编程语言提供 perror() 和 strerror() 可用于显示与 errno 关联的文
将一种数据类型转换为另一种数据类型称为类型转换或类型转换。例如,如果您想将一个“long”值存储为一个简单的整数,那么您可以键入 cast long to int。您可以使用 cast 运算符 将值从一种类型显式转换为另一种类型 如下 - (type_name) expression 考虑以下示例,其中强制转换运算符导致一个整数变量除以另一个整数变量作为浮点运算执行 - 现场演示 #include <stdio.h> main() { int sum = 17, count = 5; double mean; mean = (double) sum
头文件是扩展名为 .h 的文件 其中包含要在多个源文件之间共享的 C 函数声明和宏定义。头文件有两种类型:程序员编写的文件和编译器自带的文件。 您通过将头文件包含在 C 预处理指令 #include 中来请求在程序中使用头文件 ,就像您已经看到包含 stdio.h 编译器附带的头文件。 包含头文件相当于复制头文件的内容,但我们不这样做,因为它容易出错,并且在源文件中复制头文件的内容不是一个好主意,特别是如果我们一个程序中有多个源文件。 在 C 或 C++ 程序中的一个简单做法是,我们将所有常量、宏、系统范围的全局变量和函数原型保存在头文件中,并在需要的地方包含该头文件。 包含语法 使用
C 预处理器 不是编译器的一部分,而是编译过程中的一个单独步骤。简单来说,C 预处理器只是一个文本替换工具,它指示编译器在实际编译之前进行所需的预处理。我们将 C 预处理器称为 CPP。 所有预处理器命令都以井号 (#) 开头。它必须是第一个非空白字符,为了便于阅读,预处理器指令应该从第一列开始。以下部分列出了所有重要的预处理器指令 - Sr.No. 指令和说明 1 #define 替换预处理器宏。 2 #包括 插入来自另一个文件的特定标题。 3 #undef 取消定义预处理器宏。 4 #ifdef 如果定义了此宏,则返回 true。 5
C语言