zoukankan      html  css  js  c++  java
  • 001 C++ 基础

    注释

    单行注释

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

    多行注释

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

    变量

    创建变量的语法:

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

    例如:

    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位有效数字(不包括小数点)

    image-20200701104946126

    image-20200701105138119

    字符型

    字符型变量用于存储、显示单个字符, 字符型占 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;
    }
    
  • 相关阅读:
    软件开发模版与规范 & 项目组规范
    CSS代码结构初探
    DIV+CSS 一行两列布局
    AE 9.3代码 升级到AE10.0
    栅格相减 异常
    鹰眼视图异常
    十进制度批量转换度分秒
    javascript是一朵奇葩
    pku 1065 pku 1548
    hdu 1254 推箱子
  • 原文地址:https://www.cnblogs.com/zcf-blog/p/13252101.html
Copyright © 2011-2022 走看看