[C++][基础]1_变量、常量和基本类型

简介:   1.1     算术类型 类型 最小存储空间(位) bool 1 char 8 wchar_t 16 short 16 int 16 long 32 float 6位有效数字 double 10位有效数字 long double 10位有效数字   1.2     常量 不能修改的值成为常量。

 

1.1     算术类型

类型

最小存储空间(位)

bool

1

char

8

wchar_t

16

short

16

int

16

long

32

float

6位有效数字

double

10位有效数字

long double

10位有效数字

 

1.2     常量

不能修改的值成为常量。

 

1.3     变量

与常量相反,是可以修改的值。

 

1.4     引用

引用主要用于函数的形参。引用必须用与该引用同类型的对象初始化。

1.4.1          引用是别名,所有针对引用的操作实际上都是作用在该引用的绑定对象上。引用一旦绑定对象后,不能再绑定到其他对象。

1.4.2          const引用

const引用是指向const对象的引用。

Eg:      const int ival = 1024;

            const int& refval1 = ival;          //ok

            int& refval2 = ival;                     //error

 

1.5     const限定符

const可以用来定义常量。

 

1.6     typedef

用来定义类型的同义词:

Eg:   typedef string StuName;

 

1.7     数组

1.7.1          数组的定义和初始化

数组的维数必须使用大于等于1的常量表示; 数组的维数必须在方括号内定义。

1.       初始化数组元素

如果没有显示初始化元素, 则数组元素会像普通变量一样初始化:

●在函数体外定义的内置数组,其元素初始化为0

●在函数体内定义的内置数组,其元素无初始化;

●不管在什么位置,如果元素类型为类,则自动调用该类的默认构造函数,如果没有默认构造函数,则必须提供显示初始化。

2.       特殊的字符数组

使用一组字符字面值初始化字符数组时,一定要记得添加结束字符串的空字符。

Eg:

const char cz[6] = "Daniel";      //Daniel is 7 elements

3.       数组不可以直接复制或赋值

Eg:

int ia[] = {0, 1, 2};

int ia2[](ia);      //error

int ia3[3];

ia3 = ia;             //error

 

1.7.2          数组的操作

数组下标的正确类型为size_t

 

1.8     指针

1.9     C风格字符串

1.9.1          C风格字符串的使用

1.       标准库函数

strlen(s)

strcmp(s1, s2)

strcat(s1, s2)

strcpy(s1, s2)

strncat(s1, s2, n)

strncpy(s1, s2, n)

2.       永远不要忘记字符串结束符null

Eg:

char ca[] = {'C', '+', '+'};              //没有结束符

cout << strlen(ca) << endl;        //返回的数值不正确,结果不可预料

 

1.9.2          创建动态数组

1.       动态数组的定义

Eg:

int *pia = new int[10];

2.       初始化动态分配的数组

Eg:

string *psa = new string[10];           //10个未初始化的string

int *pia = new int[10];                        //10个未初始化的int

int *pia2 = new int[10]();          //所有元素初始化为0

3.       const对象的动态数组

必须为这个数组提供初始化;因为每个数组元素都是const对象,所以无法赋值。

Eg:

const int* pci_bad = new const int[10];           //error: 未初始化

const int* pci_ok = new const int[10]();  //ok: 所有元素默认初始化为0

const string* pcs_ok = new const string[10]; //ok: 初始化10个空字符串

4.       允许动态分配空数组

Eg:

size_t size = getSize();

int* p = new int[n];

for (int* q = p; q != p + size; q++)

         /* process */

5.       动态空间的释放

动态分配的内存必须释放,否则会造成内存泄露,耗尽资源。

 Eg:

delete[] pia;

6.       动态数组的使用

 

1.9.3          新旧代码兼容

1.       混合使用string标准库和C风格字符串

Eg:

         string str = "hello";

char* cStr = str.c_str();

2.       使用数组初始化vector

Eg:

const size_t ARR_SIZE = 6;

int aiData[ARR_SIZE] = {1,2,3,4,5,6};

vector<int> ivec(aiData, aiData + ARR_SIZE);

目录
相关文章
|
7月前
|
存储 安全 编译器
C++数据类型与变量:深入理解与应用
C++数据类型与变量:深入理解与应用
|
7月前
|
存储 C语言
变量和常量的例子
变量和常量的例子
49 1
|
7月前
|
存储 算法 编译器
C++003-C++变量和数据类型2
C++003-C++变量和数据类型2
|
C语言 C++
C语言——自定义类型详解[结构体][枚举][联合体]
C语言——自定义类型详解[结构体][枚举][联合体]
C语言——自定义类型详解[结构体][枚举][联合体]
|
人工智能 Shell
将结果分别赋值给变量
将结果分别赋值给变量
67 0
|
存储 编译器 C#
【C#基础】C# 变量与常量的使用
编程语言 C# 变量和常量的介绍。
162 0
【C#基础】C# 变量与常量的使用
|
C语言
复习C部分:1.第一个C语言项目 2.初识数据类型 3.初识数据类型----变量和常量 4.初识变量的作用域和生命周期
复习C部分:1.第一个C语言项目 2.初识数据类型 3.初识数据类型----变量和常量 4.初识变量的作用域和生命周期
95 0
复习C部分:1.第一个C语言项目 2.初识数据类型 3.初识数据类型----变量和常量 4.初识变量的作用域和生命周期
C中常量数组不能修改
C中常量数组不能修改
79 0
|
存储 C#
C#编程基础——常量与变量
C#编程基础——常量与变量
144 0
C#编程基础——常量与变量
|
存储 编译器 C语言
常量和变量_数据类型|学习笔记
快速学习常量和变量_数据类型
常量和变量_数据类型|学习笔记