一、cout打印输出
从最简单的输出“hello world”开始,我们接触的第一个基础语句就是cout语句,它是将内容打印(输出)到屏幕(控制台)上的代码语句.
输出单份内容:
cout:<<"Hello World"<<endl; //其中endl的意思是换行
cout:<<2022<<endl;
输出多份内容:
cout:<<"c++ is "<<"the best"<<"language"<<endl;
可以自由组合 cout:<<输出内容<<输出内容<<输出内容<<endl;
其中输出内容非数字的话需要用“ ”括起来。
二、代码注释
代码注释即给代码做上笔记,是对代码的解释型文本,它不属于代码的一部分,在编译的时候会被忽略。
单行注释:常用双斜杠 //
cout:<<"this is a annotation"<<endl; //这是一条单行注释
多行注释:常用 “ /* */ ”。以“ /* ”开头,以“ */ ”结尾,中间的内容全部作为注释,并且中间部分可以换行。
cout:<<"this is a annotation"<<endl;
/* 这是
一条
多行注释
*/
三、标识符
首先来认识以下标识符,标识符就是对代码的实体进行标识的符号,也就是对函数、类、结构体等进行命名的名字。
标识符的命名有几个规则:
a)仅可使用字母、数字、下划线的组合,并且不能以数字开头
b)不可以使用关键字
c)大小写敏感
四、数据类型
1.整型数据
数据类型 | 占用空间 | 取值范围 | 取值范围(科学技术) |
---|---|---|---|
short(短整型) | 2字节 | -32768 ~ 32767 | -2^15 ~ 2^15-1 |
int(整型) | 4字节 | -2147483948 ~ 2147483947 | -2^31 ~ 2^31-1 |
long(长整型) | Windows中为4字节 | Windows中范围同上 | Windows中范围同上 |
long long (长长整型) | 8字节 | -9223372036854775808 ~ 9223372036854775807 | -2^63 ~ 2^63-1 |
我们可以通过sizeof()函数来自行判断不同数据类型占用的内存空间
int A=30;
cout<<"变量A占用的内存空间: "<<sizeof(A)<<endl;
可在数据类型前加上“ unsigned ”,表示对应的数据类型是无符号的,即只能存储正数,不能存储负数,例如:unsigned short 的取值范围为0 ~ 2^16-1
unsigned int 的取值范围为0 ~ 2^32-1
int num1= -10;
unsigned num2= -10;
cout<<num1<<" "<<num2<<endl;
此时num1正常输出,而num2输出异常,因为-10不在num2的数据类型取值范围内
2.浮点型数据
类型 | 有效位数(参考) | 字节数 |
float(单精度浮点数) | 6~7 | 4字节 |
double(双精度浮点数) | 15~16 | 8字节 |
long double(多精度浮点数) | 18~19 | 16字节 |
3.字符型数据
用来表示字符,char类型本质上是数字,即在内存中存储的实际上是数字。
通过ASCⅡ表进行对照:字符➡数字存入,存储的数字➡字符
!!char无法存储中文!!
类型 | 字节数 | 范围 | 映射表 |
[signed] char | 1字节 | -128 ~ 127 | ASCⅡ表 |
unsigned char | 1字节 | 0 ~ 255 | ASCⅡ表 |
char ch1 = 97;
char ch2='a';
char ch3='a' + 2;
cout<<ch1<<ch2<<ch2+1<<ch3<<endl;
此时ch1输出的为a,因为97在ASCⅡ表中对应的是小写字母a;
ch2输出的为a,因为在赋值语句中给ch2赋值了字符a;
ch2+1输出的为98,因为cout会认为ch2+1输出的是数字的格式;
ch3输出的是c,ch3先得到的是97+2=99,在cout中再对照ASCⅡ表进行映射得到字母c;
4.字符串型数据
c++中的字符串型数据声明常用string类型
string c ="c++";
此外还有c语言风格的字符串
char s1[]="c---";数组形式的字符串
char *s2="c++++";指针形式的字符串
在实际应用中通常只用string,因此数组形式和指针形式的字符串只作了解就行了。
拼接字符串的操作只需要使用+号连接就能实现
string A ="这里有";
string B ="中国人";
int C=2;
string D="个";
string S= A + to_string(C)+D+B;
cout<<S<<endl;
S的输出结果为 这里有2个中国人
5.布尔型数据
布尔型数据用来表达两极互斥,即真或假、正或反、开或关等
类型 | 字面量 | 说明 |
bool(布尔) | true或false | 本质是1或0 |
布尔型数据主要是用于逻辑判断,来判断程序的执行流程
五、常量与变量
1.常量
指在程序执行过程中值不会改变的量,常量分为①字面常量②符号常量。
①字面常量:被书写到代码内的常量
int main(){
35;3.14; //数值型字面常量
'a'; //字符型字面常量,用单引号''进行包围,并且必须填入一个字符否则报错
"llgdqln";" "; //字符串型字面常量,用双引号""进行包围,内容可以空
}
②符号常量:使用标识符去定义的常量
符号常量也就是,给符号起一个名字
定义语法:#define 标识符(即名称) 常量 !!需要定义在代码头部!!
#include "iostream"
using namespace std;
#define Sage 20 //为20起一个名称Sage
int main()
{
cout<<Sage<<endl;//此时输出的是20
return 0;
}
常量的类型可以通过后缀来确定,例如:
#define A 10L 中的L代表long类型;
#define A 10.21D 中的D代表double类型;
2.变量
指能储存计算结果或能表示值的量
int num; //声明num变量的类型为int
num = 10; //为num变量赋值10
int number=20; //声明类型和赋值可以同时进行
int a=1,b=2,c=3; //一次性声明多个变量并赋值
可以通过再一次赋值来改变变量的值
六、cin数据输入
通过cout可以将内容打印至控制台中,相反的,可以通过cin在控制台进行数据输入,从键盘输入数据提供给运行的程序。
类似地,cin也可以一次性给多个变量赋值:
int num1,num2;
cin>>num1>>num2; //为num1和num2提供数据
!!注意cout和cin的语法格式,切记不能搞混!!
七、转义字符
转义字符也就是非打印控制字符,无法打印出形态,但有特殊的功能。
转义字符 | 含义 |
\n | 换行 |
\t | 水平制表图 |
\\ | 代表一个反斜杠\ |
\' | 代表一个单引号 |
\" | 代表一个双引号 |
以上是常用的转义字符,并不完全
八、运算符
1.算数运算符
c++中常见的运算符有
运算符 | 含义 | 示例 | 结果 |
+ | 加 | 1+2 | 3 |
- | 减 | 3-1 | 2 |
* | 乘 | 3*2 | 6 |
/ | 除 | 10/3 | 3 |
% | 取模(取余) | 10%3 | 1 |
++ | 前置递增 | a=2,b=++a | a=3,b=3 |
++ | 后置递增 | a=2,b=a++ | a=3,b=2 |
-- | 前置递减 | a=2,b=--a | a=1,b=1 |
-- | 后置递减 | a=2,b=a-- | a=1,b=2 |
2.赋值运算符
赋值运算符是一种双目运算符,用于将表达式右侧的值赋予左侧变量
运算符 | 含义 | 示例 | 结果 |
= | 赋值 | a=5 | a=5 |
+= | 加等于 | a=2,a+=2 | a=4 |
-= | 减等于 | a=4,a-=2 | a=2 |
*= | 乘等于 | a=4,a*=2 | a=8 |
/= | 除等于 | a=4,a/=2 | a=2 |
%= | 模等于 | a=10,a%=3 | a=1 |
3.比较运算符
比较运算符也是一种双目运算符,用于将表达式左右两侧数据进行比较,表达式最终得到的结果是bool型,1表示正确,0表示错误
运算符 | 含义 | 示例 | 结果 |
== | 相等 | 5==6 | 0 |
!= | 不相等 | 5!=6 | 1 |
< | 小于 | 5<6 | 1 |
> | 大于 | 5>6 | 0 |
<= | 小于等于 | 5<=6 | 1 |
>= | 大于等于 | 5>=6 | 0 |
可用于比较:整型、浮点型、字符型数据的大小
而对于字符串型的比较需要特定操作。
4.逻辑运算符
逻辑运算符是一种单目或双目的运算符,用于对单个或多个表达式进行逻辑判断
运算符 | 含义 | 示例 | 结果 |
! | 非 | !a | 若a为假,那么!a为真; 若a为真,那么!a为假 |
&& | 与 | a&&b | 若a,b都为真,结果也为真,否则为假 |
|| | 或 | a||b | 若a,b都为假,结果也为假,否则为真 |
在一般程序中,大于0的数字即为真,0即为假。
5.三元运算符
三元运算符是一种三目运算符,用于根据逻辑判断的结果来提供不同的值
语法:判断条件?值1:值2 ;
int value = num1> num2? A : B ;
//若num1>num2,那么将A值赋予给变量value;
//若num1<num2,那么将B值赋予给变量value。