[Linux]C++学习笔记(一)

本文详细介绍了C++中的各种数据类型,包括基本类型、布尔类型、枚举类型、字符串类型等,并提供了相应的示例代码。此外,还列举了C++的关键字,并简要介绍了Linux环境下C++程序的编写和运行过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[Linux]C++学习笔记(一)

一门编程语言,如果你连它存在哪些数据类型都不了解,还谈什么使用语言来编程呢。经过整理,我把C++相关的数据类型,及其对应的基本修饰符,都列举出来。

第一部分:数据类型

1、基本类型

基本类型如下所示:


类型标识符       类型说明  长度(字节)         范围                      备注

char                   字符型    1 -128 ~ 127        -27 ~ (27 -1) 
unsigned char   无符字符型 1 0 ~ 255          0 ~ (28 -1)     
short int             短整型    2 -32768 ~ 32767 2-15 ~ (215 - 1) 
unsigned short int 无符短整型 2 0 ~ 65535 0 ~ (216 - 1) 
int                       整型        4 -2147483648 ~ 2147483647 -231 ~ (231 - 1) 
unsigned int     无符整型  4 0 ~ 4294967295 0 ~ (232-1) 
float                  实型(单精度) 4 1.18*10-38 ~ 3.40*1038        7位有效位 
double              实型(双精度) 8 2.23*10-308 ~ 1.79*10308  15位有效位 
long double     实型(长双精度) 10 3.37*10-4932 ~ 1.18*104932 19位有效位


2、布尔类型

布尔类型使用关键字bool来声明布尔变量,它的取值为true和false。


3、枚举类型

枚举类型定义了一组整型常量(const int),例如:

1 #include <iostream>
2 using namespace std;
3
4 int main() {
5     enum {
6         FIRST = 1,
7         SECOND,
8         THIRD,
9         FOURTH,
10         FIFTH,
11         SIXTH
12     };
13     cout<<FIFTH<<endl;
14     return 0;
15 }

编译运行,输出5。


4、字符串类型

C++中具有两种定义字符串的风格,一个是来自C语言的char*指针类型,一个是C++的STL中的string类型。


5、指针类型

指针类型可以在任何非指针类型的基础上,得到对应类型的指针类型,其实指针就是一个内存的地址,表示一个内存地址单元的数字。


6、数组类型

对任何一种类型,都对应着该类型的数组类型,在函数的返回值是数组的时候,记得要返回数组的指针,也就是数组中第一个元素的内存地址。


8、引用类型

引用类型是C++中特有的一种数据类型,它可以是某个对象的别名,通过这个别名就能够引用到对象,从而间接地操作这个对象。

在定义引用类型的时候,必须知道所要引用的对象的类型和该对象确实真实地存在,这样我们才能够去引用它从而操作它。

引用类型,可以是任意类型加上取地址符号&,就构成了引用类型,例如定义一个引用类型变量:

1 #include <iostream>
2
3 using namespace std;
4
5 int main() {
6     float price = 12.56;
7     float &priceRef = price;
8     cout<<priceRef<<endl;
9     priceRef = 100.34;
10     cout<<priceRef<<endl;
11     return 0;
12 }

此时,引用类型变量priceRef 获取了price的引用,可以直接通过操作priceRef来操作price这个变量。



第二部分:关键字

C++保留的关键字如下表所示:

asm

auto

bad_cast

bad_typeid

bool

break

case

catch

char

class

const

const_cast

continue

default

delete

do

double

dynamic_cast

else

enum

except

explicit

extern

false

finally

float

for

friend

goto

if

inline

int

long

mutable

namespace

new

operator

private

protected

public

register

reinterpret_cast

return

short

signed

sizeof

static

static_cast

struct

switch

template

this

throw

true

try

type_info

typedef

typeid

typename

union

unsigned

using

virtual

void

volatile

while


简单介绍几个:

1、const修饰符

const是常量修饰符,可以修饰任何基本类型,表示该类型的常量,在计算过程中常量的值是不可以改变的。

2、volatile修饰符

volatile修饰符也可以修饰任何基本类型,通常是为了告诉所使用的编译器,可能在编译器控制或者监测环境之外发生改变. for example, the hardware may change this variable.

3、typedef关键字

用于重新定义一个类型的,通常将已经存在的类型重新定义为具有含义的类型标识符。

4、template关键字

C++定义模板的时候,使用template关键来定义。

5、using与namespace关键字

定义或者声明命名空间的时候使用using namespace关键字。

6、inline关键字

在生命内联函数的时候使用inline关键字。inline 内联函数给出了一种解决方案:若一个函数被指定为inline 函数则它将在程序中每个调用点上被内联地展开。inline 机制用来优化小的只有几行的经常被调用的函数。

7、new与delete关键字

在堆上创建对象,也就是与整个应用程序的声明周期相同,除非显式地使用delete关键字释放堆上分配的内存,而且必须显式地使用delete来回收,否则会造成内存泄露。create on heap

8、operator关键字

操作符重载,使用operator关键字来重载定义。assignment operation

9、typename关键字

typename是用来定义泛型,声明模板的类型的。


第三部分:Linux下编译运行

最起码应该知道,在Linux系统下如何运行C++程序吧。

在Linux下我使用vim编辑器,例如,要在test.cpp文件中输入C++源代码,可以直接使用vim编辑器:

vim test.cpp

然后输入C++源代码。

保存以后进行编译:

g++ -Wall -o test test.c

生成了可执行文件test,然后运行可执行程序test:

./test

就按照你的意图执行test.c中代码所实现的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值