首页 > 编程语言 >C++基础入门学习记录

C++基础入门学习记录

时间:2024-06-11 21:30:43浏览次数:23  
标签:字符 字节 记录 int 数据类型 C++ ASCII 入门

本系列基于黑马程序员|c++课程,记录学习

相关视频——黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili

C++基础入门

2 数据类型

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

2.1 整型

作用:整型变量表示的是==整数类型==的数据

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)

2.2 sizeof关键字

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

语法: sizeof( 数据类型 / 变量)

示例:

int main() {

	cout << "short 类型所占内存空间为: " << sizeof(short) << endl;

	cout << "int 类型所占内存空间为: " << sizeof(int) << endl;

	cout << "long 类型所占内存空间为: " << sizeof(long) << endl;

	cout << "long long 类型所占内存空间为: " << sizeof(long long) << endl;

	system("pause");

	return 0;
}

整型结论:==short < int <= long <= long long==

2.3 实型(浮点型)

作用:用于==表示小数==

浮点型变量分为两种:

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

两者的区别在于表示的有效数字范围不同。

数据类型占用空间有效数字范围
float4字节7位有效数字
double8字节15~16位有效数字

示例:

int main() {

	float f1 = 3.14f;
	double d1 = 3.14;

	cout << f1 << endl;
	cout << d1<< endl;

	cout << "float  sizeof = " << sizeof(f1) << endl;
	cout << "double sizeof = " << sizeof(d1) << endl;

	//科学计数法
	float f2 = 3e2; // 3 * 10 ^ 2 
	cout << "f2 = " << f2 << endl;

	float f3 = 3e-2;  // 3 * 0.1 ^ 2
	cout << "f3 = " << f3 << endl;

	system("pause");

	return 0;
}

2.4 字符型

**作用:**字符型变量用于显示单个字符

语法:char ch = 'a';

注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号

注意2:单引号内只能有一个字符,不可以是字符串

  • C和C++中字符型变量只占用==1个字节==。
  • 字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元

示例:

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

	//ch = "abcde"; //错误,不可以用双引号
	//ch = 'abcde'; //错误,单引号内只能引用一个字符

	cout << (int)ch << endl;  //查看字符a对应的ASCII码
	ch = 97; //可以直接用ASCII给字符型变量赋值
	cout << ch << endl;

	system("pause");

	return 0;
}

ASCII码表格:

ASCII控制字符ASCII字符ASCII字符ASCII字符
0NUT32(space)64@96
1SOH33!65A97a
2STX34"66B98b
3ETX35#67C99c
4EOT36$68D100d
5ENQ37%69E101e
6ACK38&70F102f
7BEL39,71G103g
8BS40(72H104h
9HT41)73I105i
10LF42*74J106j
11VT43+75K107k
12FF44,76L108l
13CR45-77M109m
14SO46.78N110n
15SI47/79O111o
16DLE48080P112p
17DCI49181Q113q
18DC250282R114r
19DC351383S115s
20DC452484T116t
21NAK53585U117u
22SYN54686V118v
23TB55787W119w
24CAN56888X120x
25EM57989Y121y
26SUB58:90Z122z
27ESC59;91[123{
28FS60<92/124|
29GS61=93]125}
30RS62>94^126`
31US63?95_127DEL

ASCII 码大致由以下两部分组成:

  • ASCII 非打印控制字符: ASCII 表上的数字 0-31 分配给了控制字符,用于控制像打印机等一些外围设备。
  • ASCII 打印字符:数字 32-126 分配给了能在键盘上找到的字符,当查看或打印文档时就会出现。

2.5 转义字符

**作用:**用于表示一些==不能显示出来的ASCII字符==

现阶段我们常用的转义字符有: \n \\ \t

转义字符含义ASCII码值(十进制)
\a警报007
\b退格(BS) ,将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头012
\n换行(LF) ,将当前位置移到下一行开头010
\r回车(CR) ,将当前位置移到本行开头013
\t水平制表(HT) (跳到下一个TAB位置)009
\v垂直制表(VT)011
\\代表一个反斜线字符""092
'代表一个单引号(撇号)字符039
"代表一个双引号字符034
?代表一个问号063
\0数字0000
\ddd8进制转义字符,d范围0~73位8进制
\xhh16进制转义字符,h范围0~9,a~f,A~F3位16进制

示例:

int main() {
	
	
	cout << "\\" << endl;
	cout << "\tHello" << endl;
	cout << "\n" << endl;

	system("pause");

	return 0;
}

标签:字符,字节,记录,int,数据类型,C++,ASCII,入门
From: https://blog.csdn.net/weixin_45166756/article/details/139607549

相关文章

  • CF1984 记录
    吐槽真跟上次说的一样打一场掉一场了,最近CF+AT加起来打了四场全部掉一车,我都不知道到底是我晚上状态很差还是纯菜,就比如这场D写了一车分讨最后还是挂细节,B编了个离谱做法但是漏了一堆case,本来以为也是细节问题今天一看还是假。不过就算这次比赛状态好可能还是只能到E,我应......
  • 微坤分入门(简单)
    黎曼和假设函数\(f(x)\)在区间\([a,b]\)上非负连续,那么曲线\(y=f(x)\)和直线\(x=a,x=b\)以及\(x\)轴就围成了一个曲边梯形。为了求解这个曲边梯形的面积\(S\),我们在这个区间\([a,b]\)中插入一组点\(a=x_0\ltx_1\ltx_2\lt\cdots\ltx_n=b\),将区间\([a,b]\)......
  • CH01_初识C++
    CH01_初识C++第一个C++程序新建项目新建文件编写代码#include<iostream>usingnamespacestd;intmain(){ cout<<"helloworld"<<endl; system("pause"); return0;}运行程序注释作用:在代码中加一些说明和解释,方便阅读代码。两种格式:单行注释://这是......
  • 记录--别忘了前端是靠什么起家的
    ......
  • LangChain AgentExecutor invoke跟踪记录(一)
    目的追踪与调用LLM相关的整条链路,用于理解langchainAgent调用LLM时整个输入输出逻辑,方便后续针对不同LLM做改造适配跟踪记录第一步自然是导进chains\base.py的invoke函数,在这里经过简单的输入验证后进入self._calltry:self._validate_inputs(inputs)......
  • LangChain AgentExecutor invoke跟踪记录(二)
    上回书说到,跟踪到二轮迭代时,我的模型挂了。LangChainAgentExecutorinvoke跟踪记录(一)-CSDN博客实际上后来检查发现并没有挂,只是我当时太紧张了所以看错了(……)。所以今天我们再战!准备工作上次忘了关掉流式输出,今天我们先给它关掉:agent_executor=AgentExecutor(agent=ag......
  • C++面向对象语言自制多级菜单
    因为要做一个小应用,需要一个菜单类,在网上找了许久,也没有找到一款心仪的菜单类,索性用C++语言,自制一个命令行级别的菜单类,并制作成库,现记录下来,供以后借鉴。一、特性无限制条目无限制层级用户自定义条目和动作脚本式生成菜单类二、代码实现(一)菜单类菜单类主要负责菜单的......
  • 任务下发优化分析过程记录
    任务下发优化分析过程记录背景最近接手了一个任务下发平台,基本功能是接收任务脚本,下发给目标服务器执行.简化的业务流程如下:sequenceDiagramautonumberparticipantclientparticipantserverparticipantDBparticipantMQparticipanttargetclient->>+server:......
  • C++ try-catch 语句的注意事项
    在C++中,try-catch 语句用于处理异常。当在 try 块中的代码抛出一个异常时,程序会立即跳出 try 块,并查找与之匹配的 catch 块来执行。以下是使用 try-catch 语句时需要注意的一些事项:异常类型匹配:catch 块后面必须跟上一个异常类型(或者是省略类型以捕获所有类型的......
  • PreScan快速入门到精通: 仿真实验环境建模
    PreScan的实验是在某种环境中进行的。PreScan环境的基本元素有以下几种:底层(2D)自然元素道路斑点 Skyboxes可以在Experiment->GeneralSettings->3DWorld底层(2D)目的:最重要的是,底层的作用是完成实验的场景。提供它们是为了有一个简单的方法来快速建立一个2D世界。例如,......