【教程】C++语言基础学习笔记(二)——数据类型

本文详细介绍了C++语言的基础知识,包括基本内置数据类型(如布尔型、字符型、整型等)、常量与变量的使用(如字面值常量、const和typedef),以及类型修饰。通过实例展示了如何测试数据类型占用的储存空间和不同类型的表现。
摘要由CSDN通过智能技术生成

写在前面:

如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持!


【C++语言基础学习】系列文章

第一章 《项目与程序结构》

第二章 《数据类型》

第三章 《运算符》

第四章 《流程控制》

第五章 《Vector向量》

第六章 《String字符串》

第七章 《Array数组》

第八章 《函数》

第九章 《指针》

第十章 《结构体》


文章目录

一、基本内置数据类型

(一)基本数据类型

1.数据类型分类

2.储存空间

3.数据类型返回值

(1)布尔型

(2)字符型

(二)类型修饰

二、常量与变量

(一)字面值常量

1.标注

2.转义符

(二)变量

 (三)const

(四)typedef


一、基本内置数据类型

(一)基本数据类型

1.数据类型分类

C++同别的语言一样,为编程人员提供了种类丰富的内置数据类型和用户自定义的数据类型,以下列表罗列了C++语言中内置的基本数据类型。

类型关键字

布尔型

bool
字符型char
整型int
浮点型float
双浮点型double
无类型void
宽字符型wchar_t

2.储存空间

此时,可以右键点击“源文件”创建一个类,创建类时会同时创建相应的头文件和源文件。假设创建一个test的类,则会自动生成一个test.h的头文件和test.cpp的源文件。

此时test.h的代码如下。

#pragma once
class test
{
};

 当希望验证各个数据类型所占用的储存空间时,可在test.h文件中构建一个名为“testStorage()”的函数,并且考虑到CBase.cpp(详情请看本系列第一部分)形成exe文件执行,需要进行公共声明。

此时test.h代码如下。

#pragma once
class test
{
public:
	void testStorage();
};

根据头文件和源文件的关系,此时需要在test.cpp文件中使用#include预处理指令获得test.h头文件的文件内容,然后具体实现test.h中的testStorage()函数。此操作可以通过在test.h中移动鼠标光标到“testStorage()”函数位置点击词条左下角“创建testStorage()定义(在test.cpp中)”来实现,也可以在test.cpp中手动书写。

此时test.cpp代码如下。

#include "test.h"

void test::testStorage()
{
}

接下来需要编写代码实现测试各种数据类型的储存空间的函数功能。所用的语句即iostream的cout和sizeof方法。其中,void由于是“无类型”,所以没有准确的存储空间占用,所以不进行测试。

此时test.cpp代码如下。

#include "test.h"
#include <iostream>

void test::testStorage()
{
	std::cout << "bool存储空间" << sizeof(bool) << "字节" << std::endl;
	std::cout << "char存储空间" << sizeof(char) << "字节" << std::endl;
	std::cout << "int存储空间" << sizeof(int) << "字节" << std::endl;
	std::cout << "float存储空间" << sizeof(float) << "字节" << std::endl;
	std::cout << "double存储空间" << sizeof(double) << "字节" << std::endl;
	std::cout << "wchar_t存储空间" << sizeof(wchar_t) << "字节" << std::endl;
}

 完成头文件test.h的接口和test.cpp的具体实现后,要想形成exe运行testStorage()方法,还需要在CBase.cpp这个源文件中使用它,具体操作是通过建立一个test类(我们自定义的)的对象来使用这个对象的testStorage()方法。

此时CBase.cpp代码如下。

#include <iostream>
#include "test.h"

int main()
{
    test testObject;
    testObject.testStorage();
}

这里通过test类建立了这个类型的对象testObject,然后调用了testObject对象的testStorage()方法。

点击F5调试,返回结果如下。

bool存储空间1字节
char存储空间1字节
int存储空间4字节
float存储空间4字节
double存储空间8字节
wchar_t存储空间2字节

3.数据类型返回值

(1)布尔型

当使用布尔型数据类型时,判定为true则返回1,判定为false则返回0。

(2)字符型

当字符型数据类型输入的是字符时,返回值即为字符;输入的是数字的时候,默认返回为ASCII码。

(二)类型修饰

一些基本数据类型可以使用一个或多个类型修饰进行修饰,修饰在数据类型后面。

  • signed
  • unsigned
  • short
  • long

signed修饰的数据类型取值范围是正负相等的,unsigned的修饰结果则是令数据类型取非负,short可以缩小数据类型取值范围,而long则增大数据类型取值范围。 

使用上一个方法也可以测试修饰的数据类型的储存空间,原理相同,这里仅出示返回结果。

储存空间占用(字节)shortlongsignedunsignedsigned/unsigned shortsigned/unsigned long
bool
char11
int244424
float8
double8
void
wchar_t

 由此可以看到,int整型是修饰最灵活的一个数据类型。

二、常量与变量

(一)字面值常量

字面值常量是指在源代码中直接出现的常量值,它们具有固定的值,不会改变,省去了类型的定义。

int x = 10;

例如以上代码,x就是设置的整型变量,而10则是赋予变量x的字面值常量。同时,字面值常量在输出时可以直接输出,不通过设置变量来输出。 

1.标注

int dec = 85;// 十进制整数
int oct = 0123;// 八进制整数,0打头
int hex = 0x4b;// 十六进制整数,0x打头
unsigned int uint = 30u;// 无符号整数,u结尾
long int lint = 30l;// 长整型,l结尾
unsigned long int ulint = 30ul;// 无符号长整型,ul结尾
float f = 3.14f;
double fDouble = 3.14;
float fOmit = .25f;

 在赋予变量值的时候,标注不同也会是输入变量的值不同,例如增加前缀0则可以使后面的数字变为八进制;而浮点数不增加后缀f则自动默认数字为双浮点数;浮点数小数点前的0可以省略等等。

2.转义符

转义符是一种特殊的字符组合,在编程语言中用于表示一些特殊的字符或字符序列。它们以反斜杠“\”开始,后面跟着一个或多个字符,用于表示目标字符或执行特定的操作。

符号名称作用
\n换行符(newline)表示在字符串中换行
\t制表符(tab)表示在字符串中插入一个制表符
\"双引号在字符串中插入一个双引号
\'单引号在字符串中插入一个单引号
\\反斜杠自身在字符串中插入一个反斜杠
\b退格符(backspace)在字符串中执行退格操作
\r回车符(carriage return)将光标移动到行首
\a响铃符(alert)发出提示声或闪烁光标

(二)变量

在C++中,变量是用于存储和表示数据的名称。每个变量都具有一个特定的类型(如整数、浮点数、字符等)以及一个关联的内存位置,用于存储该类型的值。变量的命名有以下的特点:

  1. 变量的名称可以由字母、数字和下划线字符组成。
  2. 必须以字母或下划线开头。
  3. 大小写区分。
  4. 不能使用C++关键字定义。

完成变量命名后,则需要初始化变量,即给变量赋予特定的值。初始化变量可以单个初始化,也可以多个初始化。同时,变量间也可以相互运算。

// 单个初始化
int long_a = 12;
int width_b = 23;
std::cout << "long_a:" << long_a << std::endl;
std::cout << "width_b:" << width_b << std::endl;
// 多个初始化
int a = 1, b = a + 1, c = a + b, d = 0;
std::cout << "a:" << a << " " << "b:" << b << " " << "c:" << c << " " << "d:" << d << " " << std::endl;

返回结果为:

long_a:12
width_b:23
a:1 b:2 c:3 d:0

 (三)const

在C++中,const是一个关键字,用于声明常量(constant)。而使用const关键字可以将一个变量声明为常量,但const常量一旦初始化后,就不能再修改其值。

int a = 7;
a = 8;
std::cout << a << std::endl;

 例如以上代码,在赋值变量a为7后,在将a声明为常量8,在输出时结果即为8,证明普通定义的常量是可以修改的。

const int a = 7;

而以上形式的const常量一经初始化,就再也无法修改。

(四)typedef

在C++中,typedef是一个关键字,用于创建类型别名(type alias)。它允许程序员为已有类型定义一个新的名称,使得代码更易读、易维护和可移植。

typedef int age;
age myAge = 21;
age hisAge = 68;
age herAge = 37;

例如以上代码,就是用typedef定义了一个叫做“age”的整型类型名,而根据类型名age可新建其他如myAge的整型变量。

通过使用typedef,代码中可以使用新的类型名称,而不再需要直接引用原始的类型名。这使得代码更可读,特别是对于复杂的数据类型或者涉及到多次使用的类型。 


我是EC,一个永远在学习中的探索者,关注我,让我们一起进步!

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 本章主要针对初学者,简要介绍了c/c++的基本语法和常见的编译错误。首先,介绍了程序的基本结构和常用的数据类型。c语言的基本语句包括赋值语句、条件语句和循环语句等,这些语句都可以组成程序的逻辑结构。接下来,介绍了函数的定义和调用,以及参数传递的方式。对于c++,还介绍了一些面向对象的概念,例如类、对象、成员函数等。同时,也提到了头文件和命名空间的使用方法。 在编程过程中,常常会出现各种编译错误,例如语法错误、类型不匹配、语义错误等,需要学会如何查看和解决这些错误。此外,还介绍了调试工具和各种常用的运算符和表达式,这些都是初学者必须掌握的基础知识。 总的来说,本章是关于c/c++快速入门的一篇简介性文章。虽然只是涉及到了基础的语法和知识点,但对于初学者而言是一个很好的起点。在学习过程中需要不断实践,积累经验,并不断深入了解更高级的编程技术和工具。 ### 回答2: C/C++是一种广泛使用的编程语言,它具有高效、灵活、可移植等特点,在各个领域得到广泛应用。C语言C++语言基础,在学习C++之前,需要先掌握C语言基础知识。 本文介绍的是C/C++教程中的第章——快速入门C/C++。在这一章节中,我们将介绍C语言的基本语法、变量、运算符和流程控制语句等基础知识。以下是C语言的一些基本知识点。 C语言的基本语法: C语言程序由多个函数组成,其中一个函数必须命名为main(),程序从该函数开始执行。C程序中的语句以分号结束,注释使用“//”表示单行注释,“/* */”表示多行注释。 变量和数据类型: C语言中变量的定义格式为“数据类型 变量名”;数据类型包括基本类型和用户自定义类型。C语言中的基本类型有int类型、char类型、float类型和double类型等。其中,int类型表示整型,char类型表示字符型,float类型和double类型表示浮点型。 运算符: C语言中的运算符包括算术运算符、关系运算符、逻辑运算符等。例如,“+”表示加法运算符,“>=”表示大于等于运算符,“&&”表示逻辑与运算符。 流程控制语句: C语言中的流程控制语句包括if语句、switch语句、while语句、do-while语句和for语句等。这些语句可以根据条件执行相应的语句块。 总之,本章节的快速入门C/C++,具有基本语法、变量、运算符和流程控制语句等基础知识。初学者可以通过这些基础知识,轻松入门C/C++,为后续学习打下基础。同时,要注意编写代码的规范和逻辑性,才能更好的理解和使用C/C++语言。 ### 回答3: C语言是一门广泛使用的编程语言,具有高效、灵活、稳定等特点,被广泛应用于嵌入式系统、操作系统、驱动程序、多媒体应用等领域。学习C语言是程序员的必备技能之一。 第章的快速入门C/C++教程,主要介绍了C/C++语言基础知识,重点是程序的结构和输入输出。其中程序结构包括函数、语句、变量、表达式等,而输入输出则包括scanf、printf、getchar和putchar等函数。 # 程序结构 程序结构是指程序的基本构成单元,包括函数、语句、变量、表达式等。C语言中的程序结构主要包含以下几个方面。 ## 函数 C语言中,函数是程序的基本组成单元。一个C程序可以由一个或多个函数组成,每个函数可以完成一个任务。函数的格式如下: ```c 返回类型 函数名(参数1, 参数2, ...){ // 函数体 return 返回值; } ``` 其中,返回类型指函数执行后的返回值类型;函数名是由程序员定义的,用于调用函数时识别函数;参数列表是函数的输入参数,可以有多个参数,每个参数由类型和变量名组成;函数体是函数要执行的代码块;return语句可以返回函数的执行结果。 ## 语句 语句是完成特定功能的一组指令。C语言中的语句包括赋值语句、条件语句、循环语句等。C语言中通常使用花括号来表示语句块。例如,下面是一个if语句的例子。 ```c if(条件){ // if语句块 }else{ // else语句块 } ``` 如果条件为真,则执行if语句块中的代码;否则执行else语句块中的代码。 ## 变量 变量是用于存储数据的一种容器。在C语言中,一个变量包括变量名、类型和值。变量名由程序员定义,用于识别变量;类型指变量的数据类型,如整型、字符型、实型等;值是存储在变量中的数据。变量的定义格式如下。 ```c 数据类型 变量名 = 值; ``` 例如,下面是一个整型变量的定义。 ```c int num = 10; ``` ## 表达式 表达式是由变量、运算符和常量组成的一个具有返回值的语句。C语言中的运算符分为算术运算符、关系运算符、逻辑运算符等,例如加号、减号、乘号、除号等。下面是一个简单的表达式。 ```c a = 5 + 6 * 3 / 2 - 1; ``` 这个表达式将计算5加6乘3除以2减1的值,并将结果赋给a变量。 # 输入输出 输入输出是程序中非常重要的部分,可以让程序与用户进行交互。C语言中有多种输入输出函数,其中一些最常用的是scanf、printf、getchar和putchar函数。 ## scanf函数 scanf函数用于从标准输入读取格式化数据,并将读取的数据存储到变量中。它的格式如下。 ```c scanf("格式控制字符串", 变量列表); ``` 其中,格式控制字符串指示scanf函数需要读取的数据类型和格式,变量列表指向要读取的变量。下面是一个scanf函数的例子。 ```c int num; scanf("%d", &num); ``` 这个代码段将从标准输入读取一个整数,并将其存储到num变量中。 ## printf函数 printf函数用于将格式化数据输出到标准输出。它的格式如下。 ```c printf("格式控制字符串", 参数列表); ``` 其中,格式控制字符串指示printf函数需要输出的数据类型和格式,参数列表包含要输出的变量和常量。下面是一个printf函数的例子。 ```c int num = 5; printf("num的值是%d\n", num); ``` 这个代码段将输出“num的值是5”。 ## getchar和putchar函数 getchar函数用于从标准输入读取一个字符,putchar函数用于将一个字符输出到标准输出。它们的用法非常简单,例如下面的代码将读取一个字符并将其转换成大写字母后输出。 ```c char c = getchar(); putchar(toupper(c)); ``` 以上就是第章中的快速入门C/C++教程的主要内容,包括程序结构和输入输出方面的基础知识。熟练掌握这些内容,对于学习C语言来说是非常重要的。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值