C++学习笔记(超详细笔记记录ing)

C++学习笔记(1)

学习是一件任重而道远的事情,与其焦虑不如动手起来,借助平台记录自己学习笔记,希望和大家多多交流,今天又是努力成为程序媛的一天!

01.书写第一个C++程序(“hello world”)

代码运行环境:VScode 2022 C++ 桌面版

#include<iostream>
using namespace std;

int main()
{

  cout << "hello world" << endl;
  
  system("pause");
  return 0;
}

运行结果

在这里插入图片描述

语句结构:cout << "这里输入你想输出的内容” << endl;

易错小tips:

  1. endl 这里最后是字母l,而不是数字1;
  2. 语句结束时记得加分号;

02.添加注释

在代码中添加注释对程序员来说至关重要,它能帮助我们后面再来看该程序以及方便小组其他成员查看理解你的代码,完成项目合作。
前期学习一定要养成写代码加注释的习惯,方便后期查看理解代码。

// 这是单行注释

/*
这是多行注释
main函数是一个程序的入口
有且只有一个

03.变量

每个值都有一个内存地址来存放,使用变量就可以给这个内存空间起名,方便使用。
变量的语法结构:数据类型 变量名 = 变量初始值
在程序中创建一个变量如下:

#include<iostream>
using namespace std;

int main()
{
	int a = 10;//创建一个变量a并赋值
	cout << a << endl;//输出a的值
	
	system("pause");
	return 0;
}

运行结果:
在这里插入图片描述

04.常量

用于记录程序中不可更改的数据
C++常量使用语法:
1.#define 宏常量:#define 常量名 常量值
2.const 数据类型 常量名 = 常量值;

#include<iostream>
using namespace std;
//常量使用
//1.#define 宏常量
#define Day 7  //写在文件和函数的上方

int main(){
	//	int Day = 14;//如果修改常量的值,会报错,宏常量不可修改
	cout << "一周有" << Day << "天" << endl;

//2. const修饰的常量
	const int month = 12;//写在函数调用前,变量前加const就变成常量
//	int month = 17;//常量定义后不可修改值,程序报错
	cout << "一年有" << month << "个月" << endl;

	system("pause");
	return 0;
}

输出结果:
在这里插入图片描述

易错tips:

  1. 使用宏常量时,后面不需要加分号;
  2. const常量使用后面加;
  3. 注意缩进,否则会报错
  4. 常量一旦定义不可再更改,否则报错:表达式必须是可修改的值
  5. 这里我尝试用#define在头部定义两次,程序没有报错且以最后一次定义的为准
  6. 尝试二,用const定义相同的变量两次不同值,程序就报错了,不可改变值重复定义
  7. 尝试三,#define定义一次后又用const定义一次,程序依旧报错

05.关键字

C++里有很多关键字,不要用关键字给变量或者常量起名字,否则程序产生歧义,报错,因为系统已经将它们赋予特殊的意义了。
在这里插入图片描述

06.标识符命名规则

标识符命名即给常量/变量起名时,需要遵循一些规则:

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

07.数据类型

数据类型意义:给变量分配合适的内存空间,不同数据类型占用空间不同,定义是为了更好的空间配置。

7.1.整型

在这里插入图片描述
占的空间不同也就导致取值范围不同,成正比。

7.2 sizeof 关键字

作用:利用sizeof 可以求出数据类型占用的内存大小
语法sizeof(数据类型/变量名)
上代码:
在这里有个小插曲,我在VScode源文件重新再创建一个.cpp文件时并运行,但是程序报错:无法导入
第一次使用这个编译C++,不熟悉操作。一番搜索后才知道:项目里如果有多个.cpp文件(源文件),如果运行其中一个.cpp文件是会报错的。
因为它只能有一个main函数!!!

解决方法可以参考这个链接:多个.cpp文件(源文件)可运行方法

#include<iostream>
using namespace std;

int main()
{
	short num1 = 10;

	cout << "short占用的内存大小为" << sizeof(short) << endl;

	int num2 = 10;

	cout << "int占用的内存大小为" << sizeof(num2) << endl;

	long num3 = 10;

	cout << "long占用的内存大小为" << sizeof(num3) << endl;

	long long num4 = 10;

	cout << "long long占用的内存大小为" << sizeof(num4) << endl;

	system("pause");
	return 0;
}

输出结果
在这里插入图片描述

7.3实型(浮点型)

作用:表示小数
分为单精度float和双精度double,表示的有效数字范围不同,小数点前面也算在有效数字里

在这里插入图片描述

  • 默认小数是双精度,所以在单精度数字后面最好加个f,变成单精度

  • 默认情况 输出一个小数会显示6位有效数字

  • 也可以用科学表示法:如果e后面是正数,则表示10多少次方,如果是负数,表示10的负多少次方

int main()
{
	//1.单精度 float
	//2.双精度 double

	float num1 = 3.14f;//默认double,加个f,表明单精度

	cout << "num1 = " << num1 << endl;

	cout << "float占用的内存大小为" << sizeof(num1) << endl;
	

	double num2 = 3.14;
	cout << "num2 = " << num2 << endl;

	cout << "double占用的内存大小为" << sizeof(num2) << endl;
	double num3 = 3e2;//3 ^ 10 ^2
	float num4 = 3e-2;// 3 ^ 10 ^ -2

	cout << "num3 = " << num3 << endl;
	cout << "num4 = " << num4 << endl;
	
	system("pause");
	return 0;
	//不论单精度和双精度,小数打出来都默认是6位有效数字
}

输出结果:
在这里插入图片描述

7.4字符型

作用:用来显示单个字符
语法结构:char 字符名 = ‘单字符’;

#include<iostream>
using namespace std;

int main()
{
	//1.字符型创建

	char ch = 'a';

	cout << ch << endl;

	//2.字符型变量所占内存大小

	cout << "char占用的内存大小为" << sizeof(ch) << endl;

	//3.字符型变量常见错误

   //	char ch2 = "a";//不可用双引号
   //	char ch3 = 'ab';//只能有一个字母

	//4.字符串变量对应的ASCII编码
	cout << (int)ch << endl;//强制类型转换,把字符型转化为int型,转化为10进制的数字,即字母对应的ASCII值
	//a - 97
	//A -65
	system("pause");
	return 0;
	
}
  • 字符型占用的内存空间大小为1
  • 实际存储时,并不是将单字符存放在内存空间的,而是将其对应的ASCII编码值存放在内存空间
  • a对应的ASCII值为97,A为65
  • 注意错误!!:
    • 这里是单引号,双引号会报错
      • 单引号里面只能有1个字符,字符型内存空间只占1,汉字也不可,因为一个汉字对应的是2个字符

输出结果:
在这里插入图片描述

7.5转义字符

表示一些不能显示出来的ASCII字符
常见的转义字符:

  • \n 表示换行
  • \\ 表示输出反斜杠字符“\”:
  • \t 表示水平制表符 到下一个之间的距离,默认是8个字符从上个到下个AB位置,作用是可以输出内容可以对齐
  • 转义字符放在字符里才生效
    上代码:
#include<iostream>
using namespace std;

int main()
{	//转义字符
	//1. \n 用于换行
	

	cout << "hello world\n" ;
	
	//2. \\代表反斜线字符“\”
	
	cout << "输出符号为\\"  << endl;
 //	cout << "输出符号为" << \\ << endl;//报错,要放在字符里

	//3. \t代表水平制表符  对齐作用 默认前后内容8个空格,二者之间空多少取决于前面长度


	cout << "aaa\t  AAA" << endl;

	cout << "aa\t  AAA" << endl;

	cout << "aaaaa\t  AAA" << endl;

	system("pause");
	return 0;
}

输出结果:
在这里插入图片描述

7.6字符串

  • 作用:表示一串字符
  • 两种书写方式 :
    1.C风格:char 变量名[ ] = “字符串”;
    2.C++风格:string 变量名 = “字符串”;

注意:用C++风格字符串必须包含这个头文件:#include< string >


7.7布尔类型bool

  • 作用:布尔类型代表真或假的值
    bool类型只有两个值:true --真(本质为1);false --假(本质为0)
  • bool类型占1个字节大小
  • 语法结构: bool 变量名 = true/false;
    运行程序:
#include<iostream>
using namespace std;

int main()
{	//布尔类型
	//1. 布尔类型使用输出

	bool num1 = true;  //1
	bool num2 = false;  //0
	cout << num1 << endl;
	cout << num2 << endl;

	//2. 查看布尔类型所占的内存空间大小

	cout << "布尔类型所占空间内存大小为" << sizeof(num2) << endl;
	


	system("pause");
	return 0;
}

运行结果:
在这里插入图片描述

7.8数据的输入

  • 作用:从键盘输入数据赋值
  • 语法结构:cin >> 变量名;
    注意:赋值语句写在输出语句cout << … << endl;后面让用户输入
    运行代码:
#include<iostream>
using namespace std;

#include<string>

int main()
{	//输入数据,给变量赋值
	//1. 整型

	int num1 = 10;
	cout << "num1的值为" << num1 << endl;
	cout << "请给num1赋予一个新的值" << endl;

    cin >> num1;
	cout << "num1新的值为" << num1 << endl;

	//2. 浮点型

	float num2 = 3.2f;
	cout << "num2的值为" << num2 << endl;
	cout << "请给num2赋予一个新的值" << endl;
	cin >> num2;
	cout << "请给num2赋予一个新的值为" << num2 << endl;
	
	//3. 字符型

	char num3 = 'a';
	cout << "num3的值为" << num3 << endl;
	cout << "请给num3赋予一个新的值" << endl;
	cin >> num3;
	cout << "请给num3赋予一个新的字符为" << num3 << endl;
	
	//4. 字符串型

	string num4 = "abcd";//使用C++型写字符串型一定不要忘了加头文件
	cout << "num4的值为" << num4 << endl;
	cout << "请给num4赋予一个新的值" << endl;
	cin >> num4;
	cout << "请给num1赋予一个新的值为" << num4 << endl;
	
	//5. 布尔型

	bool num5 = true;
	cout << "num5的值为" << num5 << endl;
	cout << "请给num5赋予一个新的值" << endl;
	cin >> num5;
	cout << "请给num5赋予一个新的值为" << num5 << endl;
	
	

	system("pause");
	return 0;
}

运行结果:
在这里插入图片描述

第一篇笔记到此结束,C++基础学习会持续更新在C++学习笔记合集中,当作学习笔记复习,如果能帮助其他小伙伴就更好了。
笔记是看b站黑马程序员的C++视频学习时做的记录,笔记中如果有错误和改进的地方,欢迎大家评论交流,up up up!!!

学习原视频来自:黑马程序员C++从0到1

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值