码迷,mamicode.com
首页 > 编程语言 > 详细

001 C++基础

时间:2020-07-05 23:08:59      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:bre   方式   算术运算符   表达式2   键盘   efi   string   条件判断   include   

注释

单行注释

当行注释用两个斜线 (//)

多行注释

多行注释用一对斜杠和星号表示(/**/)

变量

创建变量的语法:

数据类型 变量名 = 变量初始值;

例如:

int age = 18;

常量

用于记录程序中不能改变的数据,常量的定义方式有两种:

#define宏常量

语法:

#define 常量名 常量值

宏常量通常定义在文件上方,表示一个常量,注意常量名和常量值之间没有赋值号

例1:

#include <iostream>
using namespace std;
#define day 7				// define定义的常量

int main() {
	cout << "一周里总共有 " << day << " 天" << endl;
	//day = 8;			// 报错,宏常量不可以修改
    
	system("pause");
    return 0;
}

const修饰的变量

语法:

const 数据类型 常量名 = 常量值

通常在变量定义前加关键字const,修饰该变量为常量,不可修改他的值。

例1:

#include <iostream>
using namespace std;

int main() {
	const int day = 7;			// const修饰的常量
	cout << "一周里总共有 " << day << " 天" << endl;
	//day = 8; // const修饰的变量是常量不可以修改
    
	system("pause");
    return 0;
}

关键字

关键字是C++中预先保留的单词,我们在定义变量或常量的时候不能使用这些关键字,C++一共有62个关键字

C++的关键字有:

<talbel>
	<tr>
    	<td style="150px"></td>
    </tr>
</talbel>

标识符命名规则

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

数据类型

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

整型

整型变量表示的是整数类型的数据

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)
long long (长长整型) 8字节 (-2^63 ~ 2^63-1)

例1:

#include <iostream>
#include <climits>			// 包含最大值和最小值函数的头文件
using namespace std;


int main() {
	short max = (std::numeric_limits<short>::max)();	// 获取最大值
	short min = (std::numeric_limits<short>::min)();	// 获取最小值
	cout << "短整型占内存字节数:" << sizeof(short) << endl;	// 获取占内存字节数
	cout << "短整型占最大值:" << max << endl;
	cout << "短整型占最小值:" << min << endl;

	system("pause");
    return 0;
}

浮点型(实型)

浮点型用于表示小数,浮点型变量分为两种:

1、单精度float,如果是单精度,小数后面必须跟一个f或F, 否则都是双精度

2、双精度double

数据类型 占用空间 有效数字范围
float 4字节 7位有效数字(不包括小数点)
double 8字节 15-16位有效数字(不包括小数点)

技术图片

技术图片

字符型

字符型变量用于存储、显示单个字符, 字符型占 1 个字节的内存

语法:

char 变量名=‘值‘;

注意:

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

例1:

#include <iostream>
using namespace std;

int main() {
	char ch = ‘a‘;
	cout << ch << endl;

	system("pause");
    return 0;
}

字符串

用于表示一串字符

两种风格的字符串表示方式:

C语言风格的字符串

语法:

char 变量名[] = "值"

注意

  1. 中括号不能少
  2. 值必须用双引号扩起来

例1:

#include <iostream>
using namespace std;

int main() {
	char str[] = "我是一个字符串";
	cout << str << endl;

	system("pause");
    return 0;
}

C++风格的字符串

语法:

`string 变量名 = "值"

使用c++风格的字符串时,为了兼容,建议包含头文件 #include <String>

例1:

#include <iostream>
using namespace std;

int main() {
	string str = "我是一个字符串";
	cout << str << endl;

	system("pause");
    return 0;
}

布尔类型

布尔数据类型代表真或假的值,占用1个字节的内存空间,布尔类型只有两个值:

  • true 真(本质是1,可以用非 0 的数字来代替)
  • false 假(本质是0)

例1:

#include <iostream>
using namespace std;

int main() {
	bool flag = true;
	cout << flag << endl;			// 输出布尔值

	system("pause");
	return 0;
}

sizeof关键字

利用sizeof关键字可以统计数据类型所占内存大小

语法:

sizeof(数据类型 / 变量)

sizeof后面的参数,可以是数据类型关键字,也可以是变量

例1:

# include <iostream>
using namespace std;


int main() {
	int a = 10;
	cout << "short占内存空间为:" << sizeof(short) << endl;
	cout << "int占内存空间为:" << sizeof(a) << endl;    
	cout << "int占内存空间为:" << sizeof(long) << endl;
	cout << "int占内存空间为:" << sizeof(long long) << endl;

	system("pause");
    return 0;
}

数据的输入

数据的输入用于从键盘获取数据

语法:

cin >> 变量名

例1:

#include <iostream>
using namespace std;

int main() {
	string name = "";
	cout << "请输入你的姓名:" << endl;
	cin >> name;
	cout << "你输入的姓名是:" << name << endl;

	system("pause");
	return 0;
}

算术运算符

用于处理四则运算

运算符:

运算符 术语 示例 结果
+ 正号 +3 3
- 负号 -3 -3
+ 10+5 15
- 10-5 5
* 10*5 50
/ 10/5 2
% 取模(求余) 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;

注意:

  1. 只有整数才可以进行取模运算
  2. 取模运算,除数也不能为 0

例1:

#include <iostream>
using namespace std;

int main() {
	int num1 = 10, num2 = 3;
	cout << num1 / num2 << endl;		// 结果是:3

	system("pause");
	return 0;
}

例2:

#include <iostream>
using namespace std;

int main() {
	double num1 = 10, num2 = 3;
	cout << num1 / num2 << endl;		// 结果是:3.33333

	system("pause");
	return 0;
}

例3:

#include <iostream>
using namespace std;

int main() {
	double num1 = 10;
	int num2 = 3;			// 精度低的先往精度高的转换,然后参与计算,结果为精度高的类型
	cout << num1 / num2 << endl;		// 结果是:3.33333

	system("pause");
	return 0;
}

例4:

#include <iostream>
using namespace std;

int main() {
	int num1 = 10;
	int num2 = 3;
	cout << num2 % num1 << endl;		// 结果是:3

	system("pause");
	return 0;
}

例5:

#include <iostream>
using namespace std;

int main() {
	int num1 = 10;
	int num2 = num1++ * 10;		// 先参与运算,后num1自增
	int num3 = ++num1 * 10;		// 先num1自增,后参与运算
	cout << "num1的值是:" << num1 << endl;		// 结果是12, 因为num1在计算num2和num3时各自增了一次
	cout << "num2的值是:" << num2 << endl;
	cout << "num3的值是:" << num3 << endl;

	system("pause");
	return 0;
}

赋值运算符

赋值运算符用于将表达式的值赋给变量

赋值运算符:

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

例1:

#include <iostream>
using namespace std;

int main() {
	int num1 = 10;
	num1 *= 3;		// 相当于num1 = num1 * 30
	cout << num1 << endl;

	system("pause");
	return 0;
}

比较运算符

用于表达式的比较并返回一个真值或假值

比较运算符有:

运算符 术语 示例 结果
== 相等于 4 == 3 0
!= 不等于 4 != 3 1
< 小于 4<3 0
> 大于 4>3 1
<= 小于等于 4<=3 0
>= 大于等于 4>=3 1

逻辑运算符

根据表达式的值返回真或假

逻辑运算符:

运算符 术语 示例 结果
! !a 如果a为假,则结果为真;如果a为真,则结果为假
&& a && b 如果a和b都为真,则结果为真,否则为假。(同真为真,其余为假)
|| a || b 如果a和b有一个为真,则结果为真,二者都为假,则结果为假。(同假为假,其余为真)

流程结构

C++支持三种程序运行结构:

顺序结构:程序按照顺序执行,不发生跳转

选择结构:依据条件是否满足,有选择的执行相应功能

循环结构:依据条件是否满足,循环多次执行某段代码

顺序结构

就是按代码的先后顺序执行,前面所学习的都是顺序结构

选择结构

if 语句

执行满足条件的语句

if语句的三种形式

  • 单行格式if语句

    语法:

    if (条件表达式)

    {

    ? 满足条件,要执行的内容;

    }

    例1:

    #include <iostream>
    using namespace std;
    
    int main() {
    	int score = 0;	
    	cout << "请输入你的分数:";
    	cin >> score;
    	if (score >= 600)
    	{
    		cout << "恭喜,你达到了一本线!!!" << endl;
    	}
    
    	system("pause");
    	return 0;
    }
    
  • 多行格式if语句

    语法:

    if (条件表达式)

    {

    ? 满足条件,要执行的内容;

    }

    else

    {

    ? 不满足条件,要执行的内容;

    }

    例1:

    #include <iostream>
    using namespace std;
    
    int main() {
    	int score = 0;	
    	cout << "请输入你的分数:";
    	cin >> score;
    	if (score >= 600)
    	{
    		cout << "恭喜,你达到了一本线!!!" << endl;
    	}
    	else
    	{
    		cout << "抱歉,你未达到一本线!!!" << endl;
    	}
    
    	system("pause");
    	return 0;
    }
    
  • 多条件的if语句

    if (条件表达式1)

    {

    ? 满足条件表达式1,要执行的内容;

    }

    else if(条件表达式2)

    {

    ? 满足条件表达式2,要执行的内容;

    }

    ...

    else

    {

    ? 所有条件表达式都不满足,要执行的内容;

    }

    例1:

    #include <iostream>
    using namespace std;
    
    int main() {
    	int score = 0;	
    	cout << "请输入你的分数:";
    	cin >> score;
    	if (score >= 600)
    	{
    		cout << "恭喜,你达到了一本线!!!" << endl;
    	}
    	else if(score >= 500)
    	{
    		cout << "恭喜,你达到了二本线!!!" << endl;
    	}
    	else if (score >= 400)
    	{
    		cout << "恭喜,你达到了三本线!!!" << endl;
    	}
    	else
    	{
    		cout << "很遗憾,你没达到本科线!!!" << endl;
    	}
    
    	system("pause");
    	return 0;
    }
    

嵌套if语句

嵌套if语句是在一个if语句里面再嵌套一个if语句,达到更精确的条件判断

语法:

if (条件表达式)

{

? 要执行的语句;

? if (条件表达式)

? {

? 要执行的语句;

? }

}

注意:

嵌套的也可以有多种形式,上面多行if和多条件if都可以嵌套,这里就不过多的描述

例1:

#include <iostream>
using namespace std;

int main() {
	int pigA = 0, pigB = 0, pigC = 0;
	cout << "请输入A小猪的体重:";
	cin >> pigA;

	cout << "请输入B小猪的体重:";
	cin >> pigB;

	cout << "请输入C小猪的体重:";
	cin >> pigC;

	if (pigA > pigB) //A小猪比B小猪重
	{
		if (pigA > pigC)
		{
			cout << "A小猪最重" << endl;
		}
		else
		{
			cout << "C小猪最重" << endl;
		}
	}
	else  //B小猪比A小猪重
	{
		if (pigB > pigC)
		{
			cout << "B小猪最重" << endl;
		}
		else 
		{
			cout << "C小猪最重" << endl;
		}
	}
	

	system("pause");
	return 0;
}

三目运算符

通过三目运算符可以实现简单的运算

语法:

表达式1 ? 表达式2 : 表达式3

说明:

如果表达式1的值为真,执行表达式2,并返回表达式2的结果

如果表达式1的值为假,执行表达式3,并返回表达式3的结果

注意:

在三目运算符中返回的是变量名,我们可以继续赋值

例1:

#include <iostream>
using namespace std;

int main() {
	int a = 100, b = 110;
	int max = a > b ? a : b;
	cout << "最大的值是:" << max << endl;

	system("pause");
	return 0;
}

例2:

#include <iostream>
using namespace std;

int main() {
	int a = 100, b = 110;
	(a < b ? a : b) = 50;		// 由于 a < b,返回的是变量a,给a赋值50
	cout << "a的值是:" << a << endl;	
	cout << "b的值是:" << b << endl;

	system("pause");
	return 0;
}

switch语句

switch用于执行多添加分支语句

语法:

switch( 表达式 )

{

? case 结果1:

? 执行语句;

? break;

? case 结果2:

? 执行语句;

? break;

? ...

? default:

? 执行语句;

? break;

}

注意:

switch的表达式只能是整型或者字符型

例1:

#include <iostream>
using namespace std;

int main()
{
	cout << "请为电影打分:" << endl;
	int score = 0;
	cin >> score;
	switch (score)
	{
	case 10:
		cout << "棒极了" << endl;
		break;
	case 9:
		;					// 如果两个case要执行的语句相同可以直接省略,只写一个分号表							 // 示一个空语句,具体执行的是另一个语句
	case 8:
		cout << "非常好看" << endl;
		break;
	case 7:
		cout << "一般般吧" << endl;
		break;
	case 6:
		cout << "一般般吧" << endl;
		break;
	default:
		cout << "非常差" << endl;
	}
	system("pause");
	return 0;
}

循环结构

while语句

当满足循环条件,执行循环语句,一般用于循环次数未知的循环,使用该语句的时候,程序必须提供跳出循环的出口,否者会出现死循环了。

语法:

while (循环条件)

{

? 循环语句;

}

说明:

只要循环条件为真,就执行循环语句

例1:

#include <iostream>
using namespace std;

int main()
{
	int num = 0;
	while(num<10)
	{
		cout << num << endl;
		num++;
	}
	system("pause");
	return 0;
}

例2:

#include <iostream>
using namespace std;
#include <ctime>

int main()
{
	// rand 生成的是伪随机数,每次运行程序都是从同一个数字开始,
	// srand用于给随机数添加种子,用来当前系统时间作为种子,确保随机数每次不一样
	srand((unsigned int)time(NULL));
	// 随机生成一个1~100的整数
	int num = rand() % 100 + 1;
	int val = 0;
	while (true)
	{
		cout << "请输入你猜的数字:";
		cin >> val;
		if (val > num)
		{
			cout << "你猜大了。。。" << endl;
		}
		else if (val < num)
		{
			cout << "你猜小了。。。" << endl;
		}
		else
		{
			cout << "恭喜你猜对了。。。" << endl;
			break;
		}
	}
	system("pause");
	return 0;
}

do...while语句

满足循环条件,执行循环语句,先执行一次循环语句,再判断循环条件

语法:

do

{

? 循环语句;

}while(循环条件);

例1:

#include <iostream>
using namespace std;

int main()
{
	int num = 0;
	do
	{
		cout << num << endl;
		num++;
	} while (num < 10);
	
	system("pause");
	return 0;
}

for语句

满足循环条件,执行循环体,一般用于有限次的循环

语法:

for(起始表达式 ; 条件表达式 ; 末尾循环体)

{

? 循环语句;

}

例1:

#include <iostream>
using namespace std;

int main()
{
	for (int i = 0; i < 10; i++) {
		cout << i << endl;
	}
	
	system("pause");
	return 0;
}

跳转语句

break语句

用于跳出选择机构或者循环结构

break使用的时机:

? 出现在switch条件语句中,作用是终止case并跳出switch

? 出现在循环语句中,作用是跳出当前的循环语句

? 出现在嵌套循环中,跳出最近的内层循环语句

continue语句

continue再循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环

例1:

#include <iostream>
using namespace std;

int main()
{
	for (int i = 1; i < 10; i++)
	{
		if (i % 2 == 0)
		{
			continue;
		}
		cout << i << endl;
	}
	
	system("pause");
	return 0;
}

goto语句

可以无条件跳转语句,跳转到标记处执行,我们应该尽量避免使用goto语句,避免造成程序混乱

语法:

goto 标记

例1:

#include <iostream>
using namespace std;

int main()
{
	cout << "1" << endl;
	goto FLAGE;
	cout << "2" << endl;
	cout << "3" << endl;
	cout << "4" << endl;
FLAGE:
	cout << "5" << endl;
	
	system("pause");
	return 0;
}

001 C++基础

标签:bre   方式   算术运算符   表达式2   键盘   efi   string   条件判断   include   

原文地址:https://www.cnblogs.com/zcf-blog/p/13252101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!