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++01(数据类型 运算符 选择结构) -> 正文阅读

[C++知识库]c++01(数据类型 运算符 选择结构)

一 初始c++

1.1注释

作用:在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码
两种格式
1.单行注释://描述信息
通常放在一行代码的上方,或者一条语句的末尾,对该行代码说明
2.多行注释:/描述信息/
通常放在一段代码的上方,对该段代码做整体说明
提示:编译器在编译代码时,会忽略注释的内容

1.2 变量

作用:该一段指定内存空间起名,方便操作这段内存。
语法:数据类型 变量名=初始值
示例:

#include<iostream>
using namespace std;
int main1()
{
	int a = 10;
	cout << "hello world" << endl;
	cout << "a = " << a << endl;
	system("pause");
	return 0;
}

1.3 常量

作用:用于记录程序中不可更改的数据
C++定义常量两种方式
1.#define宏常量
#define常量名常量值
通常在文件上方定义,表示一个常量
2.const修饰的变量
const数据类型常量名=常量值
通常在变量定义前加关键字const,修饰该变量为常量,不可修改

#include<iostream>
using namespace std;
int main()
{
	int a = 10;
	cout << "a = " << a << endl;
	system("pause");
	return 0;
}

1.3 常量

作用:用于记录程序中不可更改的数据
C++定义常量两种方式
1.#define宏常量:#define常量名常量值
通常在文件上方定义,表示一个常量
2.const修饰的变量:const据类型常量名=常量值
通常在变量定义前加关键字const,修饰该变量为常量,不可修改

#include<iostream>
using namespace std;
//常量的定义方式
//1.define 宏常量
//2.const 修饰的变量
#define day 7
int main()
{
	//1.define 宏常量
	//day=13;//day为宏常量,不可以更改,更改会报错
	cout << "一周有;" << day <<"天" << endl;

	//2.const 修饰的变量
	 const int month = 12;
	//month = 24;错误,const修饰的变量也称为常量
	 cout << "一年中有:" << month << "个月份" << endl;
	return 0;
}

1.4 关键字

作用:关键字是C++中预先保留的单词(标识符)

  • 在定义变量或者常量时候,不要用关键字
//不要用关键字给变量或常量起名称
//int int =10;第二个int不可以作为变量名称

在这里插入图片描述

1.5 标识符命名规则

作用:C++规定给标识符(变量、常量)命名时,有一套自己的规则

  • 标识符不能是关键字
  • 标识符只能由字母、数字、下划线组成
  • 第一个字符必须为字母或下划线
  • 标识符中字母区分大小写

建议:给标识符命名时,争取做到见名知意的效果,方便自己和他人的阅读

二 数据类型

C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型;否则无法给变量分配内存

2.1 整型

作用:整型变量表示的是整数类型的数据
C++中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同

数据类型占用空间取值范围
short(短整型)2字节(-2^15 ~ 2 ^15 -1)
int(整型)4字节(-2^31 ~ 2^31-1)
long(长整形)Windows为4字节,Linux为4字节(32位),8字节(64位)(-2^31~ 2 ^31-1)
longlong(长长整形)8字节(-2^63 ~ 2 ^63-1)

2.2 sizeof关键字

作用:利用sizeof关键字可以统计数据类型所占内存大小
语法:sizeof(数据类型/变量)

结论:short<int<long<long long

#include<iostream>
using namespace std;
int main()
{
	cout << "short类型所占的空间为:" << sizeof(short) << endl;
	cout << "int类型所占的空间为:" << sizeof(int) << endl;
	cout << "long类型所占的空间为:" << sizeof(long) << endl;
	cout << "long long类型所占的空间为:" << sizeof(long long) << endl;
}
short类型所占的空间为:2
int类型所占的空间为:4
long类型所占的空间为:4
long long类型所占的空间为:8

C:\Users\HP\Desktop\01 hello world\x64\Debug\01 hello world.exe (进程 4756)已退出,代码为 0。
按任意键关闭此窗口. . .

2.3 实型(浮点型)

作用:用于表示小数
浮点型变量分为两种:
1.单精度float
2.双精度double
两者的区别在于表示的有效数字范围不同

数据类型占用空间有效数字范围
float4字节7位有效数字
double8字节15~16位有效数字
#include<iostream>
using namespace std;
int main()
{
	//1 float 单精度
	//2 double 双精度
	//默认情况下,输出一个小数,会显示出6位有效数字
	float fl = 3.14159f;//默认情况下数字模式是double,在数字后加个f可以使计算机少一步运算
	cout << "fl=" << fl << endl;
	double d1 = 3.1415926;
	cout<< "d1=" << d1 << endl;
	//统计float和double分别占多少字节
	cout << "float所占的字节为:" << sizeof(float) << endl;
	cout << "double所占的字节为:" << sizeof(double) << endl;
	//科学计数法
	float f2 = 8e2;//8*10^2
	cout<< "f2=" << f2 << endl;
	float f3 = 3e-2;//3*0.1^2
	cout << "f3=" << f3 << endl;
}
fl=3.14159
d1=3.14159
float所占的字节为:4
double所占的字节为:8
f2=800
f3=0.03

2.4 字符型

作用:字符型变量用于显示单个字符
语法: char ch='a'

注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号
注意2:单引号内只能有一个字符,不可以是字符串

1 C和C++中字符型变量只占用1个字节
2 字符变量并不是将自身的符号翻到内存中存储,而是将对应的ASCII编码放到内存中

#include<iostream>
using namespace std;
int main()
{
	//1.字符型变量创建形式
	char ch =  'a';
	cout << "ch=" << ch << endl;

	//2.字符型变量所占内存大小
	cout << "ch所占内存大小:" << sizeof(ch) << endl;

	//3.字符型变量常见错误
	//char ch="a"//创建字符型变量时,要用到单引号
	//char c='abcde'//创建字符型变量时,只能放一个字符
	
	//4.字符型变量对应的ASCII编码
	//a-97
	//A-65
	cout << (int)ch << endl;
}

ASCII码大致由以下两部分组成:

  • ASCII表上的数字0-31分配给了控制字符:ASCII非打印控制字符:用于控制像打印机等一些外围设备
  • ASCII打印字符:数字32-126分配给了能在键盘上找到的字符,当查看或打印文档时就会出现

2.5 转义字符

作用:用于表示一些不能显示出来的ASCI字符
现阶段我们常用的转义字符有:\n \ \t

转义字符含义ASCII码值(十进制)
\a警报007
\b退格(BS),将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头012
\n换行(LF),将当前位置移到下一行开头010
\r回车(CR),将当前位置移到本行开头013
\t水平制表(HT)(跳到下一个TAB位置)009
\v垂直制表(VT)011
\代表一个反斜线字符"\“092
代表一个单引号(撤号)字符039
"代表一个双引号字符034
\v代表一个问号063
int main()
{
	// \n:换行符
	cout << "hello world\n";
	// \\:反斜杠
	//要输出一个斜杠,需要打出两个斜杠;第一个斜杠定义一个特殊字符,第二个斜杠是输出内容
	cout << "\\" << endl;
	// \t:水平制表符;作用:更整齐的输出后边的数字(内容)
	cout << "aaa\t hello woeld" << endl;
	cout << "aaaa\t hello world" << endl;
}

2.6 字符串型

作用:用于表示一串字符
两种风格
1.C风格字符串:char 变量名[]="字符串值"
2.C++风格字符串:string 变量名=“字符串值”

int main()
{
	//c语言风格的字符串
	char str[] = "hello world";
	cout << str << endl;
	//c++语言风格的字符串
	//包含一个头文件#include<string>
	string str2 = "hello world";
	cout << str2 << endl;
}

2.7 布尔类型bool

作用:布尔数据类型代表真或假的值
bodl类型只有两个值
true–真(本质是1)
false—假(本质是0)
bodl类型占1个学节大小

int main() {
	//创建bool数据类型
	bool flag = true;
	cout << flag << endl;
	flag = false;
	cout << flag << endl;
	//本质上 1代表真 0代表假

	//查看bool所占的字节
	cout << "bool所占的字节:" << sizeof(bool) << endl;
}
1
0
bool所占的字节:1

2.8 数据的输入

作用:用于从键盘获取数据
关键字:cin
语法:Cin>>变量

int main()
{
	//整形
	int a = 0;
	cout << "请输入一个整数:" << endl;
	cin >> a ;
	cout <<"输入的数是:" << a << endl;
	//浮点型
	float b = 0.0;
	cout << "请输入一个浮点数:" << endl;
	cin >> b;
	cout << "输入的浮点数是:" << b << endl;
	//字符型
	char ch = 'o';
	cout << "请输入一个字符:" << endl;
	cin >> ch;
	cout << "字符是:" << ch << endl;
	//字符串型
	string str = "hello wrold";
	cout << "请输入一个字符串" << endl;
	cin >> str;
	cout<< "字符串为:" << str << endl;
}

三 运算符

作用:用于执行代码的运算
本章我们主要讲解以下几类运算符:

运算符类型作用
算术运算符用于处理四则运算
赋值运算符用于将表达式的值赋给变量
比较运算符用于表达式的比较,并返回一个真值或假值
逻辑运算符用于根据表达式的值返回真值或假值

3.1 算术运算符

作用:处理四则运算
算术运算符包含以下符号:

运算符术语实例结果
+正号+22
-负号-2-2
+2+35
-减\3-21
*2*36
/6/23
%取模(取余)10/31
++前置递增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
int main()
{
	int num1, num2,a=10;
	cout << "请输入两个整数:" << endl;
	cin >> num1;
	cin >> num2;
	cout << num1 << "+" << num2  << "="<< num1 + num2 << endl;
	cout << num1 << "-" << num2  << "="<< num1 - num2 << endl;
	cout << num1 << "*" << num2  << "="<< num1 * num2 << endl;
	cout << num1 << "/" << num2  << "="<< num1 / num2 << endl;
	cout << num1 << "%" << num2  << "="<< num1 % num2 << endl;
	cout << "a=" << a << endl;
	cout << "前置递增: " << a <<"\t" << "c=" << ++a << endl;
	cout << "后置递增: " << a <<"\t" << "c=" << a++ << endl;
	cout << "后置递减: " << a << "\t" << "c=" << --a << endl;
	cout << "后置递减: " << a <<"\t" << "c=" << a-- << endl;

}

3.2 赋值运算符

作用:用于将表达式的值赋给变量
赋值运算符包括以下几个符号:

运算符术语示例结果
=赋值a=2;b=3;a=2:b=3;
+=加等于a=0;a+=2;a=2;
-=减等于a=5:a-=3a=2;
*=乘等于a=2:a*=2;a=4;
/=除等于a=4;a/=2;a=2;
%=模等于a=3;a%2;a=1;

3.3 比较运算符

作用:用于表达式的比较,并返回一个真值或假值
比较运算符有以下符号:

术语运算符示例结果
==相等于4==30
!=不等于4!=31
<小于4<30
>大于4>31
<=小于等于4<=30
>=大于等于4>=11

3.4 逻辑运算符

作用:用于根据表达式的值返回真值或假值
逻辑运算符有以下符号

运算符示例术语结果
!!a如果a为假,则!a为真;如果a为真,则!a为假
&&a&&b如果a和b都为真,则结果为真,否则为假。
llallb如果a和b有一个为真,则结果为真,二者都为假时,结果为假.

四 程序流程结构

C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构

  1. 顺序结构:程序按顺序执行,不发生跳转
  2. 选择结构:依据条件是否满足,有选择的执行相应功能
  3. 循环结构:依据条件是否满足,循环多次执行某段代码

4.1 选择结构

4.1.1 if语句

作用:执行满足条件的语句
i语句的三种形式

单行格式if语句

-
1.单行格式i语句:if(条件){条件满足执行的语句}

int main()
{
	int score = 0 ,input=0;
	cout << "请输入你的分数:" << endl;
	cin >> score;
	cout << "你的分数是:" << score<<endl;
	cout << "请确定你的分数是否正确,正确请打1,不正确请打2" << endl;
	cin >> input;
	if (input == 2)
	{
			cout << "请输入你的分数:" << endl;
			cin >> score;
			cout << "你的分数是:" << score << endl;
			cout << "请确定你的分数是否正确,正确请打1,不正确请打2" << endl;
			cin >> input;
			if (score >= 600)
			{
				cout << "win" << endl;
			}
			else
			{
				cout << "fall" << endl;
			}
	}
	else
	{
		if (input == 1 )
		{
			if (score >= 600)
			{
				cout << "win" << endl;
			}
		}
		else
		{
			cout << "fall" << endl;
		}
	}
}

不要加分号,加分号后ift条件与后边不会产生结构的联系

多行格式语句

多行格式i语句:if(条件){条件满足执行的语句elset条件不满足执行的语句;}

ture
false
开始
判断条件
执行语句1
执行语句2
结束

多条件的i语句

在这里插入图片描述

int main()
{
	int score = 0;
	cout << "请输入你的分数:\n";
	cin >> score;
	if (score >= 600)
	{
		cout << "恭喜你,考上了211" << endl;
	}
	else if (score >= 500)
	{
		cout << "恭喜你,考上了一本" << endl;
	}
	else if (score>=400)
	{
		cout << "恭喜你,考上了二本" << endl;
	}
	else 
	{
		cout << "抱歉,你没有考上本科" << endl;
	}
}

嵌套if语句

嵌套if语句:在i语句中,可以嵌套使用i语句,达到更精确的条件判断
案例需求:

  • 提示用户输入一个高考考试分数,根据分数做如下判断
  • 分数如果大于600分视为考上一本,大于500分考上二本,大于400考上三本,其余视为未考上本科
  • 在一本分数中,如果大于700分,考入北大,大于650分,考入清华,大于600考入人大
	int score = 0;
	cout << "请输入你的分数:" << endl;
	cin >> score;
	if (score >= 600)
	{
		cout << "恭喜你在一本行列;更详细的如下:" << endl;
		if(score>=700)
		{
			cout << "恭喜你,考上了北大\n";
		}
		else if (  score >= 650)
		{
			cout << "恭喜你,考上了清华\n";
		}
		else 
		{
			cout << "恭喜你,考上了人大\n";
		}
		
	}
	else if (score >= 500)
	{
		cout<<"恭喜你,考上了二本" << endl;
	}
	else if (score>=400)
	{
		cout<<"恭喜你,考上了三本" << endl;
	}
}

练习案例:

三只小猪称体重,有三只小猪ABC,请分别输入三只小猪的体重,并且判断哪只小猪最重
在这里插入图片描述

int main()
{
	int A=0,B=0,C=0;
	cout << "请输入小猪A的体重:" << endl;
	cin >> A;
	cout << "请输入小猪B的体重:" << endl;
	cin >> B;
	cout << "请输入小猪C的体重:" << endl;
	cin >> C;
	if (A > B && A > C)
	{
		cout << "A" << endl;
	}
	if (B > A && B > C)
	{
		cout << "B" << endl;
	}
	if (C > A && C > B)
	{
		cout << "C" << endl;
	}
	return 0;
}
int main()
{
	int num1=0, num2=0, num3=0;
	cout << "请输入小猪A的体重:"<< endl;
	cin >> num1;
	cout << "请输入小猪B的体重:" << endl;
	cin >> num2;
	cout << "请输入小猪C的体重:" << endl;
	cin >> num3;
	if (num1 > num2)
	{
		if (num1 > num3)
		{
			cout << "A最重\n";
		}
		else
		{
			cout << "最重\n";
		}
	}
	else//B比A重
	{
		if (num2 > num3)
		{
			cout << "C最重\n";
		}
		else 
		{
			cout << "C最重\n";
		}
	}
}

4.1.2 三目运算符

作用:通过三目运算符实现简单的判断
语法:表达式1?表达式2:表达式3

  • 解释:
    如果表达式1的值为真,执行表达式2,并返回表达式2的结果
    如果表达式1的值为假,执行表达式3,并返回表达式3的结果
int main()
{
	int a = 10, b = 20, c = 0;
	c= a > b ? a: b;
	cout << "c=" << c << endl;
	(a > b ? a : b) = 100;
	cout << "a=" << a << endl;
	cout << "b=" << b << endl;
}

结果如下:

c=20
a=10
b=100

4.1.3 switch语句

作用:执行多条件分支语句

注意1:switch语句中表达式类型只能是整型或者字符型
注意2:case里如果没有break,那么程序会一直向下执行
总结:与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间

int main()
{
	int score=0;
	cout << "请给电影打分:" << endl;
	cin >>score;
	switch(score)
	{
	case 10:
			cout << "goood goood goood good goood" << endl;
			break;
	case 9:
			cout << "goood good goood goood" << endl;
			break;
	case 8:
			cout << "good goood goood" << endl;	
			break;
	case 7:
			cout << "good goood" << endl;
			break;
	case 6:
			cout << "good" << endl;
			break;
	case 5:
			cout << "just so so" << endl;
			break;
	defalt:
			cout << "bad\n";
	}
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 12:43:52  更:2022-03-06 12:44:07 
 
开发: 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 5:39:13-

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