其值都是一个地址,但前者是可以移动的,后者是不可变的.
C++ 中指针与数组关系密切,几乎可以互换使用。数组名可以看成常量指针,指针可以进行任何有关数组下标的操作。 编程技巧 5.4 操作数组时用数组符号而用指针符号。尽管程序编译时间可能稍长一些.但程序更加清晰。 假设声明了整数数组 b[ 5 ] 和整数指针变量 bPtr。由于数组名(不带下标)是数组第一个元素的指针,因此可以用下列语句将 bPtr 设置为 b 数组第一个元素的地址: bPtr = b
6. 指向指针的指针与指针数组 指针可以指向基本类型,也可以指向复合类型,因此也可以指向另外一个指针变量,称为指向指针的指针。 int i; int *pi = &i; int **ppi = π 这样定义之后,表达式*ppi取pi的值,表达式**ppi取i的值。请读者自己画图理解i、pi、ppi这三个变量之间的关系。 很自然地,也可以定义指向“指向指针的指针”的指针,但是很少用到: int
指针运算 ///01.指针运算.c #include <stdio.h> #include <stdlib.h> //01.指针变量的运算符特点: // 1.指针变量的运算只有在所属数组的情况下才具备实际意义 // 2.指针变量的运算与其所指向的数据实体的类型密切相关 // 3.没有明确类型的指针变量完全无法进行访问(读取|修改) // 只是具备这存储地址这么一个唯一的功能 //
数组的基本概念 整个数组的地址和数组首元素的地址 void main() { int a[] = {1, 2}; int b[100] = {1, 3}; int c[200] = {0}; //编译的时候就已经确定所有的值为零 memset(c, 0, sizeof(c)); //显式的重置内存块 //对一维数组 C 规定: //c 是数组首元素
主要内容:关于数组指针的谜题数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element)。数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存。以 为例,该数组在内存中的分布如下图所示: 定义数组时,要给出数组名和数组长度,数组名可以认为是一个 指针,它指向数组的第 0 个元素。 在C语言中,我们将第 0 个元素的地址称为数组的首地址。以上面的数组为例,下图是 arr 的指向:
3. 指针与数组 先看个例子,有如下语句: int a[10]; int *pa = &a[0]; pa++; 首先指针pa指向a[0]的地址,注意后缀运算符的优先级高于单目运算符,所以是取a[0]的地址,而不是取a的地址。然后pa++让pa指向下一个元素(也就是a[1]),由于pa是int *指针,一个int型元素占4个字节,所以pa++使pa所指向的地址加4,注意不是加1。 下面画图理解。从前