[C++][基础]1_变量、常量和基本类型
2017-09-01 09:49
211 查看
Normal07.8 磅02falsefalsefalseEN-USZH-CNX-NONE
1.1 算术类型
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
;
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);
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
;
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);
相关文章推荐
- C语言基础:进制转换,变量,常量,表达式,基本数据类型,输出函数,输入函数,运算符.
- 变量和基本类型---C++ 基础
- JAVA基础初探(一)核心概念(JVM,JDK,JRE)、流程控制语句、基本数据类型、关键字、标识符、常量与变量、类型转换、Debug处理
- Java语言基础{Java_se(02)}-字面量和常量-变量的基本定义和使用-Java表达式-数据类型和分类-基本数据类型的转换-算数运算符-赋值运算符-比较运算符-三元运算符-逻辑运算符
- c++基础三(基本知识-变量,常量,枚举,引用)
- C语言基础学习基本数据类型-变量和常量
- [C++ 面试基础知识总结] 变量和基本类型
- Chapter 3、Java语法基础(二)----Java基本数据类型、变量与常量 (20th,Feb)
- C++---基础篇(关键字/变量/常量/数据类型)
- C++基础学习系列第一部分——变量和基本类型
- C语言基础学习基本数据类型-变量和常量
- 语言基础(项目结构,数据类型,引用类型,转义字符,变量常量,基本的类型转换)
- JAVA第二章基础知识:注释,标识符,数据类型常量变量,基本数据类型转换。--------------(Make A little EvProgresseryday )
- C++基础系列一:变量和基本类型
- Java基础语法(一)(标识符,关键字,注释,常量,变量,基本数据类型)
- C++基础<02>—变量和基本类型
- C++基础——1.变量和基本类型(基于c++11)
- C语言基础学习基本数据类型-变量和常量
- java基础--1.基本语法 - 2.数据类型、常量变量
- C++程序员学Java系列之五:常量,变量,基本数据类型及转换