首页 > 编程语言 >C++基础知识学习笔记(1)

C++基础知识学习笔记(1)

时间:2024-05-20 23:08:10浏览次数:11  
标签:函数 int 笔记 基础知识 运算符 add C++ include cout

资料来源

https://www.bilibili.com/video/BV1et411b73Z/?spm_id_from=333.337.search-card.all.click&vd_source=cc561849591f6a210152150b2493f6f3

简单知识点

创建项目

  1. 用VS创建了一个C++的空项目。

  2. 在【源文件】中创建一个cpp文件

  3. 书写以下代码并运行

#include <iostream>
using namespace std;

int main()
{
    cout << "Hello world" << endl;

    system("pause");
    return 0;
}

注释

  1. 单行注释://
  2. 跨行注释:/* */

变量

变量定义的语法:数据类型 变量名 = 变量值

int a = 100;
cout << "a = " << a << endl;

常量

有两种:

  1. 宏常量
#define PI 3.1415926

int main()
{
	//PI = 3;//会报错,不能再修改了
	cout << "PI = " << PI << endl;

	system("pause");
	return 0;
}

注意#define的位置一般放在文件头部(方便集中浏览和修改),当然也能放到函数里面(在调用位置前面)。

  1. const修饰的常量
int main()
{
	const int PI = 3.14;
	//PI = 3;//不能再修改了
	cout << "PI = " << PI << endl;

	system("pause");
	return 0;
}

标识符命名规则

  1. 不能用关键字
  2. 只能使用字母、数字、下划线
  3. 开头不能用数字
  4. 区分大小写
  5. 建议命名时见名知义(非强制)

数据类型

数据类型的意义:给变量分配合适的内存空间。

整型

image

	short a1 = 1;
	int a2 = 1;
	long a3 = 1;
	long long a4 = 1;
	cout << a4 << endl;
	//short取值范围:-32768 到 32767
	short a1 = 32767;
	short a2 = 32768;
	cout << a1 << endl;//32767
	cout << a2 << endl;//-32768

查看类型所占内存长度

使用sizeof(数据类型 / 变量)

	short a = 1;
	int size_a = sizeof(a);
	int size_int = sizeof(int);
	cout << size_a << endl;//2
	cout << size_int << endl;//4
	cout << sizeof(long) << endl;//4
	cout << sizeof(long long) << endl;//8

实型(浮点型)

  1. 单精度float
  2. 双精度double

image

	float f1 = 3.14f;//如果不加f会将其当做double转为float
	cout << f1 << endl;

	double d1 = 3.14159265354;
	cout << d1 << endl;//默认输出一个小数,会显示6位有效数字

	cout << "float占用空间:" << sizeof(float) << endl;//4
	cout << "double占用空间:" << sizeof(double) << endl;//8

科学记数法:

	float f2 = 3e5;
	cout << f2 << endl;//300000
	float f3 = 3e-2;
	cout << f3 << endl;//0.03

字符型

用于表示单个字符。
char ch = 'a';

	char ch = 'd';
	cout << ch << endl;//d
	cout << sizeof(char) << endl;//1

注意:

  1. 用单引号
  2. char占一个字节。
  3. 字符变量存储的不是字符本身,而是其ASCII码。

查看字符型变量的ASCII码:

	int a = (int)'a';
	cout << a << endl;//97

a:97
A:65

转义字符

表示一些不能显示出来的ASCII码。
常用的转义字符有:\n(换行)、\\(反斜杠)、\t(水平制表)

字符串型

用于表示一串字符。

image

两种风格:

  1. C风格字符串char str[] = "hello";
  2. C++风格字符串string str2 = "world";
    有的VS低版本中需要加入头文件才能支持string:#include <string>

布尔类型

代表真假,有两种值:true(本质是1)、false(本质是0)。
占一个字节。

	bool a = true;
	bool b = false;
	cout << a << endl;//1
	cout << b << endl;//0
	cout << sizeof(bool) << endl;//1

数据的输入

作用:从键盘获取数据。

image
image

注意:

  1. 针对int、float、double等数值型,输入的值如果无法转为int,则转为0.
  2. 针对bool,输入的值如果能转为非0的int,则转为1,否则转为0.

运算符

image

算数运算符

image

注意:

  1. 整数相除,结果还是整数,会去除小数。
  2. 被除数为0会报错。
  3. 取模是求余数。
  4. 两个整数才能做取模。

赋值运算符

image

比较运算符

image

cout << (10 < 9) << endl;//0

逻辑运算符

image

	cout << !100 << endl;//100是真,取反为假

程序流程结构

顺序结构、选择结构、循环结构

支持三目运算符:

  1. 表达式 ? 值1 : 值2
  2. 三木运算符可以返回变量:(a > b ? a : b) = 100

switch语句:

  1. 只能支持整型或者字符型,不支持区间

goto语句:
无条件跳转到某个标记(不建议使用)。

	cout << 1 << endl;
	cout << 2 << endl;
	goto FLAG;
	cout << 3 << endl;
	cout << 4 << endl;
	
FLAG:

	cout << 5 << endl;
	cout << 6 << endl;

一维数组

三种定义方式:

image

一维数据名称的用途:

  1. 统计整个数组在内存中的长度
    统计数组从起始位置到末尾位置的长度:sizeof(arr)
    第一个元素的长度:sizeof(arr[0])
    数组元素个数等于前两者相除了。
  2. 获取数组在内存中的首地址

打印数组首地址(16进制):

cout << "数组首地址:" << arr2 << endl;//000000C7FBBCFCA8
cout << "数组首地址:" << (int)arr2 << endl;//-71500632  强转int了

//打印各个元素的地址
cout << "元素1的地址:" << (int)&arr2[0] << endl;//-71500632
cout << "元素2的地址:" << (int)&arr2[1] << endl;//-71500628 (和元素1的地址相差4个字节,正好是一个int的大小)

注意:数组名是一个常量,不能给其再赋值。

二维数组

四种定义方式:
image

	int arr[4][4];
	int arr2[2][1] = { {1}, {2} };
	int arr3[2][1] = { 1, 2 };
	int arr4[][1] = { {1}, {2} };

二维数组名称用途:

  1. 查看数组所占内存空间
  2. 查看二维数组首地址

image

image

image

函数

image

int add(int n1, int n2) {
	return n1 + n2;
}
int main()
{
	cout << add(1, 2) << endl;
	system("pause");
	return 0;
}

值传递:

  1. 函数调用时,实参的值传递给函数定义中的形参
  2. 形参的值修改,不会影响实参的值。

函数的声明:

  1. 为了告诉编译器函数的名称,以及如何调用函数。
  2. 函数的主体可以单独定义。
  3. 函数可以声明多次,但定义只有一次。

image

//用函数声明,提前告诉编译器函数存在
int add(int n3, int n4);

int main()
{
	cout << add(1, 2) << endl;
	system("pause");
	return 0;
}
int add(int n1, int n2) {
	return n1 + n2;
}

函数的分文件编写:
image

  1. 头文件add.h中,声明函数:
int add(int n1, int n2);
  1. 源文件add.cpp中,定义函数:
#include "add.h"
#include <iostream>
using namespace std;
int add(int n1, int n2)
{
	int n3 = n1 + n2;
	cout << n3 <<endl;
	return n3;
}

注意:#include时,双引号表示自定义的头文件

  1. main函数中引入头文件,调用头文件中的函数:
#include <iostream>
using namespace std;

#include "add.h"
int main()
{
	cout << add(1, 4) << endl;
	return 0;
}

标签:函数,int,笔记,基础知识,运算符,add,C++,include,cout
From: https://www.cnblogs.com/redcode/p/18199423

相关文章

  • 【论文笔记】跨语言知识图谱补全
    2012~20181.Co-trainingembeddingsofknowledgegraphsandentitydescriptionsforcross-lingualentityalignment文章核心观点:参考上一篇关于实体对齐的分析方法:单语预测(KDCoE-mono)旨在以TransE的相同方式查询三元组(h,r,t)中缺失的h或t跨语预测(KDCoE-cross)提供了一种新......
  • C++常用模板
    常用模板:1.组合数(注意\(N\)与\(mod\))点击查看代码#include<bits/stdc++.h>usingnamespacestd;#definelllonglongconstllN=1e3+10,mod=998244353;lln,a[N],jc[N],dp[N],ans;voidinit(){ jc[0]=1; for(inti=1;i<N;i++)jc[i]=jc[i-1]*i%mod;}llksm......
  • 学习笔记
    CPP:函数指针定义方法int(func)(inti);int(p)(int)=func......
  • mit6.828笔记 - lab4 Part C:抢占式多任务和进程间通信(IPC)
    PartC:抢占式多任务和进程间通信(IPClab4到目前为止,我们能够启动多个CPU,让多个CPU同时处理多个进程。实现了中断处理,并且实现了用户级页面故障机制以及写时复制fork。但是,我们的进程调度不是抢占式的,现在每个进程只有在发生中断的时候,才会被调度(调用shed_yeild),这样就有可能会有......
  • manacher学习笔记
    小学一下。首先是用一个在回文串题目中的的技巧,用来减少分讨,如果想到这个的话说不定thusc2024d1t1就切了。具体来说,就是在每个字符之间都插入一个#,然后在开头和结尾插入随便两个不同的字符。然后就只有回文中心在字符上的情况了。首先设\(p_{i}\)为当前位置为中心的最大回文半......
  • Java基础 韩顺平老师的 常用类 的部分笔记
    459,八大Wrapper类包装类的分类 1)针对八种基本数据类型相应的引用类型—包装类 2)有了类的特点,就可以调用类中的方法。  460,装箱和拆箱 packagecom.hspedu.Wrapper;publicclassWrapperType{publicstaticvoidmain(String[]args){//演示......
  • C++的四种智能指针及简单实现
    C++的四种智能指针及简单实现参考:C++智能指针讲解及模拟实现一、auto_ptrauto_ptr有拷贝语义,拷贝后源对象变为空指针,可能引发严重问题template<classT>classmy_unique_ptr{private:T*_ptr;public://普通构造函数my_unique_ptr(T*ptr):_ptr(ptr){}......
  • mit6.828笔记 - lab4 Part B:写时复制Fork
    PartBCopy-on-WriteForkUnix提供 fork() 系统调用作为主要的进程创建基元。fork()系统调用复制调用进程(父进程)的地址空间,创建一个新进程(子进程)。不过,在调用 fork() 之后,子进程往往会立即调用 exec(),用新程序替换子进程的内存。例如,shell通常就是这么做的。在这种情况......
  • [笔记]Git常用命令大全
    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解`[笔记]Git常用命令大全日期:2018-6-16阿珏折腾代码浏览:1796次评论:4条继上一次后,抽空整理了个比较全的Git常用命令,找到了一张非常棒的导图,......
  • 应用层总结笔记2
    1.HTTP是什么超文本传输协议用于主机之间传输文字、图片、视频等超文本数据的规范协议HTTP不限于服务器向客户端发送超文本,服务器之间也可能进行超文本的传输2.******HTTP的状态码除了不常见的1类提示信息还有2类的报文成功收到状态信息3类的重定向信息,表示客户端申请访问......