指针初始化(C++)详解
请记住,指针被设计为指向特定数据类型的对象。当使用一个地址初始化指针时,它必须是指针可以指向的一个对象的地址。
例如,下面的 pint 定义是合法的,因为 myValue 是一个整数:
许多头文件(包括 iostream、fstream 和 cstdlib)定义了一个名为 NULL 的常量,代表指针值 0。因此,假设已经包含了这些头文件之一,那么上面的代码就可以写成以下形式:
例如,下面的 pint 定义是合法的,因为 myValue 是一个整数:
int myValue;
int *pint = & myValue;
int ages[20];
int *pint = ages;
float myFloat;
int *pint = &myFloat; //非法
int myValue,*pint = &myValue;
下面的语句定义了一个数组 readings 和一个指针 maker,maker 指针使用了 readings 数组中第一个元素的地址进行初始化:double readings[50], *marker = readings;
当然,一个指针只能用已定义对象的地址来初始化。以下语句是非法的,因为使用了一个并不存在的对象地址初始化 pint:
int *pint = &myValue; // 非法
int myValue;
int *ptrToint = 0;
double *ptrToDouble = 0;
许多头文件(包括 iostream、fstream 和 cstdlib)定义了一个名为 NULL 的常量,代表指针值 0。因此,假设已经包含了这些头文件之一,那么上面的代码就可以写成以下形式:
int *ptrToint = NULL;
float *ptrTofloat = NULL;
int *ptrToint = nullptr;
double *ptrToDouble = nullptr;
if ( p ! = nullptr ) { // 使用指针 P... }
if ( p != NULL ) { // 使用指针 P"... }
if ( p != 0 ) { // 使用指针 P... }
if (p) { // 使用指针 P... }
在 C++ 11 中,在变量定义的末尾放置一对空的大括号 {},即可初始化变量为其默认值。数字类型(例如 int、long 和 double)的默认值是 0,而指针类型的默认值则是 nullptr。因 此,以下定义语句:
int mylnt = 0;
double myDouble = 0.0;
int *ptrToInt = nullptr;
int mylnt = 0;
double myDouble = 0.0;
int *ptrToInt = nullptr;
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算