C++个人学习笔记

C++基础

程序入口、注释、变量、常量、关键字、标识符命名规则
  • 程序入口
    • main是一个程序的入口

    • 每个程序都必须有这么一个函数,有且仅有一个

      #include<iostream>
      using namespace std;
      
      int main()
      {
      	//在屏幕中输入hello word
      	cout << "hello word" << endl;
      
      	system("pause");
      
      	return 0;
      
      }
      
  • 注释
    //这是一个注释
    /*
    	这是一个注释
    	还是一个注释
    */
    
  • 变量
    • 变量的创建语法:数据类型 变量名 = 变量初始值

    • #include<iostream>
      using namespace std;
      
      int main()
      {
      	int a = 10;
      	cout << "abc = "  << a  << endl;
      
      	system("pause");
      
      	return 0;
      }
      
  • 常量
    • 1.#define 宏常量: #define 常量名 常量值

    • 2.const修饰的变量: const 数据类型 常量名 = 常量值

      
      //定义一个宏常量
      #define	Day 7
      
      int main()
      {	
      	//Day =14; 修改常量会报错
      	cout << "一个星期总共有:" << Day << "天" << endl;
      
      	//const 修饰的变量
      	const int month = 12;
      	//month =14; const修饰的变量也是常量
      	cout << "一年总共有" << month << "个月" << endl;
      
      
      	system("pause");
      
      	return 0;
      
      }
      
数据类型
  • 整型
    • 1.标识符不可以是关键字

    • 2.标识符是由字母、数字、下划线构成

    • 3.标识符第一个字符只能是字母或者下划线

    • 4.标识符区分大小写

    • //1.短整型
      short num1 = 10;

      //2.整型
      int num2 = 20;
      
      //3.长整型
      long num3 = 30;
      
      //长长整型
      long long num4 = 40;
      
  • sizeof关键字 : 统计数据类型所占内存大小
    • //1.短整型 
      	short num1 =  10;
      
      	//2.整型
      	int num2 = 20;
      
      	//3.长整型
      	long num3 = 30;
      
      	//长长整型
      	long long num4 = 40;
      
  • 浮点型
    • cout << "short 所占内存大小为:" << sizeof(num1) << endl;
      cout << "int 所占内存大小为:" << sizeof(num2) << endl;
      cout << "long 所占内存大小为:" << sizeof(num3) << endl;
      cout << "long long  所占内存大小为:" << sizeof(num4) << endl;
      
  • 字符型 :字符型变量用于显示单个字符
    • //创建
      char ch = 'a';
      cout << ch << endl;
      //3.字符型变量常见错误
      char ch2 = "b"; //创建字符型变量时,要用单引号
      char ch3 = 'abc'; //创建字符型变量时,单引号内只能有一个字符
      
  • 转义字符型 :用于表示一些不能显示出来的ASCII字符
    • 1.换行符:\n

    • 2.反斜杠:\

    • 3.水平制表符:\t

    • cout << "hello word\n"; //最后有转移字符不需要endl
      cout << "hello word"; //输出打印在一行
      cout << endl; //相当于一个换行符
      
  • 字符串型
    • //1.c风格字符串
      //char 字串符名[]
      //等号后面 要用双引号
      char str[] = "hello word";
      cout << str << endl;
      
      //2.c++风格字符串
      //包含一个头文件 #include<string>
      string str2 = "hello word2";
      cout << str2 << endl;
      
  • 布尔类型
    • true --真(本质是1)

      false – 假(本质是0)

      布尔类型只要是非零的值就是代表真

    • //创建bool数据类型
      bool flag = true;
      
  • 数据的输入
    • 作用:用于从键盘获取数据
      关键字:cin
      语法: cin >> 变量

    • int a = 0;
      cout << "请给整型变量a赋值:" << endl;
      cin >> a;
      cout << "整型变量a=" << a << endl;
      
运算符
  • 算数运算符
    • 算术运算符 + - * / %

    • 递增递减运算符 ++ –

    • 	//1.前置递增
        	int a = 10;
        	++a; //让变量加一 等价于 a = a +1
        	cout << "a = " << a << endl;
        
        	//2.后置递增
        	int b = 10;
        	b++; //让变量+1
        	cout << "b = " << endl;
        
        	//3.前置和后置的区别
        	//前置递增 先让变量+1 然后进行表达式运算
        	int a3 = 10;
        	int b3 = ++a3 * 10;
        	cout << "a3 = " << a3 <<endl;
        	cout << "b3 = " << b3 <<endl;
      
      //后置递增 先进行表达式运算 后让变量+1
      int a4 = 10;
      int b4 = a4++ * 10;
      cout << "a4 = " << a4 << endl;
      cout << "b4 = " << b4 << endl;
      
      
      
      


```

  • 赋值运算符
    • 用于将表达式的值赋值给变量
      = += -= *= /=
  • 比较运算符
    • 比较运算符
      == != < > <= >=
      返回结果为0 1 真假
  • 逻辑运算符
    • 根据表达式的值返回真值和假值
      !非 &&与 ||或
程序流程结构
  • 顺序结构(从上而下)

  • 选择结构

    • if语句

    • //单条件	
      if (score < 60) {
      	cout << "你完了!!!" << endl;
      }
      //多行格式if语句  
      if (score < 60) {
      	cout << "你完了!!!" << endl;
      }
      else if (score <= 70) {
      	cout << "良!" << endl;
      }
      
      else if (score < 90) {
      	cout << "牛!" << endl;
      }
      //多条件的if语句
      if (score >60 && score<70) {
      	cout << "加油!" << endl;
      }
      
    • 嵌套if语句

    • 	if (score < 60) {
        		cout << "你没及格!!" << endl;
        		if (score < 50) {
        			cout << "找个班上吧!" << endl;
        		}
        		else {
        			cout << "要加油啊,差一点就及格啦!" << endl;
        		}
      
    • 三目运算符

      • 语法: 表达式1 ? 表达式2 : 表达式3
        解释:
        如果表达式1的值为真,执行表达式2,并返回表达式2的结果
        如果表达式1的值为假,执行表达式3,并返回表达式3的结果

      • //创建三个变量 a b c
        //将a和b做比较,将变量大的值赋值给变量c
        int a = 10;
        int b = 20;
        int c = 0;
        c = (a > b ? a : b);
        cout << c << endl;
        
        //c++中三目运算符返回的结果是变量,可以继续赋值
        (a > b ? a : b) = 100; //执行结果 b=100
        cout << "a = " << a << endl;
        cout << "b = " << b << endl;
        
    • switch语句

      • 结构清晰,执行效率高

      • 判断是只能是整型或者字符型,不可以是一个区间

      • 	//1.提示用户给电影打分
          	cout << "请给电影进行打分" << endl;
          	int score = 0;
          	cin >> score;
          	cout << "您打的分数为 " <<score<< endl;
          
          	//2.根据用户输入的分数来提示用户最后的结果
          	switch (score) {
          	case 10:
          		cout << "您认为是经典电影" << endl;
          		break; //退出当前分支
          	case 9:
          		cout << "您认为是经典电影" << endl;
          		break;
          	case 8:
          		cout << "您认为是电影非常好" << endl;
          		break;
          	case 7:
          		cout << "您认为是电影非常好" << endl;
          		break;
          	case 6:
          		cout << "您认为是电影一般" << endl;
          		break;
          	case 5:
          		cout << "您认为是电影一般" << endl;
          		break;
          	default :
          		cout << "您认为这电影是烂片" << endl;
          	}
        
  • 循环结构

    • while循环语句

      • int num = 0;
        while (num <= 9) {
        	cout << num++ << endl;
        
    • do while循环语句

      • //do{循环语句} while(循环条件);
        //与while循环的区别在于 do..while会先执行一次循环语句,再判断循环条件
        do {
        	cout << num++ << endl;
        } while (num < 10);
        
    • for循环语句

      • for(起始表达式;条件表达式;末尾循环体){循环语句;}

      • for (int i = 0; i < 10; i++) {
        	cout << i << endl;    //执行顺序 int i=0 --> i <10 --> cout<<i<<endl; --> i++
        }
        
    • 嵌套循环

      • //利用嵌套循环实现星图
        //打印一行星星
        //外层循环
        for (int i = 0 ; i <15; i++){
        //内层循环
        for (int i = 0; i < 15; i++) {
        	cout << "* ";
        }
        	cout << endl;   //endl相当于换行符
        }
        
  • 跳转语句

    • break

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

      • 跳出此次循环,执行下一次循环
    • goto

      • 跳转到标记处

      • cout << "2.xxxxxx" << endl;
        goto FLAG;  //直接跳转到标记处
        cout << "3.xxxxxx" << endl;
        cout << "4.xxxxxx" << endl;
        FLAG:
        cout << "5.xxxxxx" << endl;
        //34不会输出
        
数组
  • 一维数组
    • 一维数组定义的三种方式:

      1. 数据类型 数组名[数组长度];
      2. 数据类型 数组名[数组长度] = {值1,值2…};
      3. 数据类型 数组名[] = {值1,值2…};
    • 一维数组数组名

      1.可以统计整个数组在内存中的长度
      int arr[5] = { 10,20,30,40,50 };
      //获取整个数组在内存中的长度
      cout << sizeof(arr) << endl;
      //获取数组中的元素在内存中的长度
      cout << sizeof(arr[0]) << endl;
      cout << "数组中的元素个数是:" << sizeof(arr) / sizeof(arr[0]) << endl;
      
      //2.可以获取数组在内存中的首地址(默认十六进制)
      cout <<"数组首地址为:"<< int(arr)<< endl;					//也可以写成(arr)int
      cout << "数组中的第一个元素的地址: "<<int(&arr[0]) << endl;   //必须加&  不然输出的是元素的值
      cout << "数组中的第二个元素的地址: " << (int)&arr[1] << endl;
      	
      //数组名是常量,不可以进行赋值操作
      
      
  • 二维数组
    • /*二维数组定义方式:
      1.数据类型 数组名 [行数][列数];
      2.数据类型 数组名 [行数][列数] = {{数据1,数据2},{数据3,数据4}}; //推荐第二种
      3.数据类型 数组名 [行数][列数] = {{数据1,数据2,数据3,数据4}};
      4.数据类型 数组名 [    ][列数] = {{数据1,数据2,数据3,数据4}};*/
      
    • //查看二维数组所占内存空间
      int arr[2][3] = {
      	{1,2,3},
      	{4,5,6}
      };
      cout << "二维数组所占内存空间为:" << sizeof(arr) << endl;
      cout << "二维数组第一行占用内存为: " << sizeof(arr[0]) << endl;
      cout << "二维数组第一个元素占用内存为 ; " << arr[0][0] << endl;
      cout << "二维数组行数为 ; " << sizeof(arr) / sizeof(arr[0]) << endl;
      cout << "二维数组列数为 ; " << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;
      
      //2.获取二维数组首地址
      cout << "二维数组首地址 ; " << int(arr) << endl;
      cout << "二维数组第一行首地址为 ; " << int(arr[0]) << endl;
      cout << "二维数组第二行首地址为 ; " << int(arr[1]) << endl;
      //访问具体元素的地址时要加&
      cout << "二维数组第一个元素首地址为 ; " << int(&arr[0][0]) << endl;
      
函数
  • 定义以其调用
    • 语法:
      返回值类型 函数名(参数列表){
      	函数体语句;
      	return 表达式;
      }
      
    • int main() {
      	//函数的引用
      	cout << add(2, 3) << endl;
      	
      
      	system("pause");
      	
      	return 0;
      }
      
  • 值传递
    • 如果函数不需要返回值,声明的时候额可以写viod
    • 做值传递的时候,函数的形参发生改变,并不会影响实参
  • 函数的常见样式
    • 1.无参无返
    • 2.有参无返
    • 3.无参有返
    • 4.有参有返
  • 函数的声明 (告诉编译器函数名称及如何调用函数)
    • 声明可以写多次,定义只能有一次
    • 提前告诉编译器函数的存在,可以利用函数的声明
  • 函数的分文件编写
    • 1.创建后缀名为.h的头文件

      • 在头文件下新建一个后缀为.h的头文件

      在这里插入图片描述

      • 在头文件内写入函数的声明

        • #include<iostream>
          using namespace std;
          
          //函数的声明
          void swap(int a, int b);
          
    • 2.创建后缀名为.cpp的源文件

      • 在源文件下创建后缀为.cpp的函数源文件

      • 源文件中写函数的定义,以及关联头文件

        • //关联头文件
          #include "swap.h"
          
          //函数定义
          void swap(int a, int b) {
          	int temp = a;
          	a = b;
          	b = temp;
          	cout << "a= " << a << endl;
          	cout << "b= " << b << endl;
          }
          
    • 3.函数在需要被调用时需要关联函数的头文件(相当于import)

      • #include<iostream>
        using namespace std;
        #include "swap.h"
        

        //函数的声明
        void swap(int a, int b);

        
        
    • 2.创建后缀名为.cpp的源文件

      • 在源文件下创建后缀为.cpp的函数源文件

      • 源文件中写函数的定义,以及关联头文件

        • //关联头文件
          #include "swap.h"
          
          //函数定义
          void swap(int a, int b) {
          	int temp = a;
          	a = b;
          	b = temp;
          	cout << "a= " << a << endl;
          	cout << "b= " << b << endl;
          }
          
    • 3.函数在需要被调用时需要关联函数的头文件(相当于import)

      • #include<iostream>
        using namespace std;
        #include "swap.h"
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值