第一节 变量
1. Hello World
#include <iostream> int main() { std::cout << "Hello, World!" << std::endl; return 0; }
2. 符号
C++中的符号:符号是C++语言中最小的片段,类似于语言中的单词,一般语言中单词分为名词、动词、形容词、副词,他们的作用是主语、谓语、宾语、定语、状语、补语。
C++中的部分符号与作用如下表所示:
片段类型(单词的作用) | 描述 | 关键字(单词) |
关键字 | C++已经定好的特定关键字,都具有特殊意义,保存在编译器中。 | int、double、for、while、if、#indclude |
标识符 | 用户自定义的数据名称,这些数据的值在使用过程中会发生改变。 | cout、std、x、MyFunction |
常量 | 固定的值,可直接用在代码中。 | “Hello World”、2、‘c’ |
操作符 | 数学或逻辑字符。 | +、-、&&、%、-> |
分隔符 | 用来对代码进行结构化操作的符号。 | {}、()、;、, |
格式化符号 | 对于上述内容进行间隔的空白或描述,会被编译器忽略。 | 空格、Tab、注释 |
3. 程序解释
// “//”符号表示单行注释,它是格式化符号之一,用来帮助解释代码 // 注释中的内容,不会被编译器进行编译,只是用来阅读 // 以”#“开始的行,被称为预编译指令 // #include <...>指令表示<...>中的代码文件,不在当前文件中 // iostream是C++官方的标准库(标准代码)之一 // 这个库中的代码用来实现在屏幕上进行文字的输入(input)与输出(output)流(stream)控制 #include <iostream> // int main() { ... } 表示一个函数 // 程序是由许多函数构成的,每一个函数用来实现一些功能 // 比如有的函数用来计算数据,有的函数用来保存数据,有的函数用来输出数据 // 任意和一个程序,都有一个起始函数,被称为主函数,也就是默认执行的第一个函数 // C++中的主函数就是名字为main的函数 // int main()行称为函数的声明,用来告诉C++编译器,这个函数的基本信息。 // { ... }中的是函数的定义,是函数实现功能的具体代码 // 注意:声明和定义可以不在一起 int main() { // std::cout << 表示将后续的内容输出到屏幕上 // C++中,标识符是用户自定义的内容,因此不同人可能使用相同的标识符 // 命名空间就是为了区分当前标识符是那个用户进行定义的,命名空间与标识符之间使用”::”进行链接 // std是C++标准命名空间,cout << 表示将后续内容输出,<< endl表示输出换行符 // 除了使用命名空间::标识符这种完整的写法,也可以在程序起始使用using namespace指令简化代码 // 代码片段: // using namespace std; // int main() { cout << "Hello Wolrd" << endl; } // "Hello, Wolrd!"是字符串常量 // C++中单个字符使用单引号表示,'C',字符串使用双引号表示,“C” // 两者的区别是在内存中,单个字符的长度为1个字节,字符串的长度不定,在内存中以“/0”进行结束 std::cout << "Hello, World!" << std::endl; // return的意思表示当前函数执行结束,通常return后会跟着一个返回值,用来表示函数执行后的状态 // 本例中return 0;的意思表示程序顺利执行结束 return 0; // 注意 // 空格用个分隔不同的关键字与标识符 // 每一行代码都要使用分号结束 // 每一段代码段都需要使用大括号括起来 }
4. 数据类型
背下来
类型名称 | 描述 | 内存中的大小 | 例子 |
char | 用来保存单个字符 | 1 byte | 'a'、'c'、'd' |
int | 用来保存整数 | 4 bytes | 4, 0, -23 |
bool | 用来保存布尔值(True/False) | 1 bytes | true(1)、false(0) |
float(double) | 用来保存小数 | 8 bytes(16 bytes) | 3.12323f、1.000f、-6.3f |
还可以使用signed、unsigned、short、long对上述符号进行修饰,short和long分别表示对数据的在内存中的大小进行1/2缩减或翻倍
注意:以上提到的数据类型在内存中的大小都和CPU的位宽有关,64位CPU上述内容表示的大小全部翻倍。
注意:上述类型不能直接转换,比如1 / 4 如果使用int类型保存结果是0,如果使用float类型保存结果才是0.25
5. 输入输出
#include<iostream> using namespace std; int main () { int a; int b; // cin >> 表示输入 cin >> a; cin >> b; // cout << 表示输出 cout << a / b; return 0; }
6. 变量
与常量(如4,5,“Hello,World”)相对应的称为变量,变量在使用过程中值会发生改变,因此需要给这些可以变化的值一个名称,比如数学中使用S表示面积、使用V表示体积。
C++中变量的名称实际上表示数据在内存中保存的地址。
声明一个变量需要提供变量的类型和变量的名称,对变量进行赋值时使用“=”,声明和赋值可以一起也可以分开。
#include <iostream> using namespace std ; // 声明整形变量a,此时变量a还未被分配内存空间 //extern int a; int main () { // 1. 变量的声明与定义 // 声明整形变量a,此时变量a还未被分配内存空间 // 注意:只能在文件开始时声明单独声明变量 //extern int a; // 定义整型变量a,此时变量a已经被分配内存空间,但是未赋值 int a; // 为变量a进行赋值 a = 5; // 声明定义整型变量b,同时进行赋值 int b = 6; cout << "a / b = " << a / b << endl; // 使用sizeof可以计算变量所占用的内存空间大小,单位为字节 cout << "size of int a is: " << sizeof(a) << endl; // 2. 变量的类型,常用类型包括:int, float, double, bool, char;扩展类型为:string // 3. 类型之间可以进行强制转换,转换的方式为内存截取 // 强制类型转换 char c = 'A'; a = (int) c; float f = 3.45; b = (int) f; cout << "c is : " << c << " f is : " << f << endl; cout << "a is : " << a << " b is : " << b << endl; // 4. 变量的数据长度 signed int sa; sa = -5; unsigned int usa; usa = -5; cout << "signed a is : " << sa << " unsigned a is : " << usa << endl; cout << "size of int: " << sizeof(int) << endl; // 需要注意根据不同平台,long扩展的方式是不同的 // 标准中只是说明long int的长度大于等于int的长度 cout << "size of long int: " << sizeof(long int) << endl; cout << "size of short int: " << sizeof(short int) << endl; cout << "size of long long int: " << sizeof(long long int) << endl; cout << "size of float: " << sizeof(float) << endl; cout << "size of double: " << sizeof(double) << endl; // 需要注意根据不同平台, bool类型的长度至少为1字节 cout << "size of bool: " << sizeof(bool) << endl; // 需要注意根据不同平台, bool类型的长度至少为1字节 cout << "size of char: " << sizeof(char) << endl; // 5. 其他修饰符 // const int ca; 这种写法是错误的,const会将变量变为常量,也就是值不可修改 // 在使用const时需要给出初值 const float pi = 3.14; // 6. 运算符(一) // + - * / % ++ -- return 0; }
7. 练习
// 计算语文、数学、外语平均分 // 请使用英文命名 #include <iostream> using namespace std; int main() { float Chinese; float English; float Math; cout << "请输入语文成绩: "; cin >> Chinese; cout << "请输入英语成绩: "; cin >> English; cout << "请输入数学成绩: "; cin >> Math; cout << "平均成绩为:" << (Chinese + English + Math) / 3 << endl; return 0; }
// 零售价 = 进货价 * (1 + 加价率) // 根据用户输入的加价率和进货价,给出零售价 #include <iostream> using namespace std; int main() { float Rate; float Income; cout << "请输入加价率: "; cin >> Rate; cout << "进货价: "; cin >> Income; cout << "零售价为:" << Income * ( 1 + Rate) << endl; return 0; }
// 计算加权平均分,期中0.3,实验0.5,期末0.2 #include <iostream> using namespace std; int main() { float MidTerm; float FinalExem; float Exp; cout << "请输入期中成绩: "; cin >> MidTerm; cout << "请输入实验成绩: "; cin >> Exp; cout << "请输入期末成绩:"; cin >> FinalExem; cout << "加权成绩: " << MidTerm * 0.3 + Exp * 0.5 + FinalExem * 0.2 << endl; return 0; }
8. 作业
作业1:根据输入,输出两个数字的和
作业2:编写程序询问用户的姓名,并回复“Hello”
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具