C/C++ 核心之一 指针与数组
来源:互联网 发布:java jdk环境配置 编辑:程序博客网 时间:2024/06/06 19:22
关于指针,谈一点自己的认识。 (1) 指针本质上就是一个地址,指针所占的byte数目只跟系统位数有关,与指针所指向的类型无关。 (2) p+1,指针移动的byte数目直接决定于指针所指向的数据类型。因此在移动指针的时候,首先应该搞清楚p所指向的数据类型。 (3) 定义指针时,如果指向的类型为TYPE,那么就需要定义TYPE* 类型的指针。 比较指向的类型为int*, 那么就要定义int**类型的指针 (4)指向单个元素的指针和指向多个元素的指针(数组指针) (4.1)如果指向的数据类型相同,所需定义的指针类型也相同。这与(3)中的描述相符合。 (4.2)指向单个元素的指针 和 数组指针, 释放时不同。 (4.3)初始化的方式不同,指向单个元素的指针在分配时可以直接初始化,而数组指针不可以初始化。 例1: int *p1=NULL int *p2 = NULL; int n = 3; p1 = new int; // 指向单个元素(无名变量) p2 = new int[n] // 指向n个元素(多个变量), p2 指向该数组的定义元素 p2++; // p2指向了下一个元素 delete p1; delete []p2; //看到却别了吧,如果delete p2只会释放p2所指向的单个元素 p1 = null; P2 =null; //防止野指针的发生,养成好的习惯,可以预防无数的bug 例2: int *p; classA *pA; classA *pB; int n = 5; p = new int(5); //初始化为5 pA= new classA(paramter1, paramter2); //先分配内存,然后调用带参数的构造函数进行初始化 PB= new classB[n]; //先分配内存,必须定义无参数构造函数(如果定义了有参数的构造函数,缺省的构造函数不会产生)
....
(5)二级指针
- C/C++ 核心之一 指针与数组
- c语言核心整理之指针与数组的区别
- C数组与指针
- c 指针与数组
- C 数组与指针
- C数组与指针
- 指针与数组 C
- C指针与数组
- c数组与指针
- C-数组与指针
- C指针与数组
- c指针与数组
- C-指针与数组
- C,C++ 指针数组与数组指针
- C语言:指针数组与数组指针
- C,C++ 指针数组与数组指针
- C,C++ 指针数组与数组指针 .
- C,C++ 指针数组与数组指针
- 近期code中遇到的几个问题
- MFC中文件读写操作
- ddms截屏
- 六级学习笔记(1)
- 面向对象设计的原则
- C/C++ 核心之一 指针与数组
- mysql CAPI与C++的交互
- 简单Case函数应用
- 一个经典的makefile文件,该文件为PF_RING的makefile
- 一个困扰很久的问题【description The server encountered an internal error () that prevented it from fulfilling this request】
- 生活随笔:师弟,加油
- explicit 和构造函数一起使用
- 细说业务逻辑
- SQL 中 sp_executesql 存储过程