指针(指向指针的指针):

关于C++指针的基本理解。

 1 #include <stdio.h>
 2
 3 int main() {
 4     int a = 4;
 5     int *p;
 6     p = &a;
 7     int **q;  //声明一个指针,指向我们已经有的指针p
 8     q=&p;     //从内存上来想,指针变量p也是保存在内存里的,
 9               //所以它的地址也应该是可以通过&p获得到的
10     printf("p in %p, q = %p\n",&p,q);       //输出指针变量p在内存中的值,输出指针变量q的值
11     printf("a in %p, p = %p, *q = %p\n",&a, p, *q);//输出变量a的地址,指针变量p的值,*q取出的值
12     printf("a = %d, *p = %d, **q = %d\n",a,*p,**q);//输出整型变量a的值,p所存的地址内的值,q所存的地址内的值
13     return 0;
14 }

输出结果:

p in 0x7ffe39988ee8, q = 0x7ffe39988ee8

a in 0x7ffe39988ee4, p = 0x7ffe39988ee4, *q = 0x7ffe39988ee4

a = 4, *p = 4, **q = 4

时间: 2024-08-25 12:41:56

指针(指向指针的指针):的相关文章

C++——指针---指向数组的指针---指向字符串的指针--指向函数的指针--指针的指针--指针的引用

一.指向数组的指针 代码示例1: 1 int main() 2 { 3 int a[10]={0,2,4,6,8,10,12,14,16,18}; 4 int *p; 5 for(p=&a[0];p<&a[0]+10;p++) 6 printf("%d ",*p); 7 } 代码示例2: int a[10]={0,2,4,6,8,10,12,14,16,18}; int *p; p=a; printf("%d\n",*(a+5));//注意加括

指针总结以及常量指针与指向常量的指针与指向常量的常指针

/*指针总结: 1:指针未被初始化一个地址或刚删除一个指针都要将其初始化为0,否则的话将会导致该指针失控 2:假如不想改变一个指针,那么将该指针定义为const, 假如不想改变该指针指向的值,将指针指向的值定义为const 假如即不想改变指针又不想改变指针指向的值,那么将指针和指针指向的值都定义为const 在new堆中创建一个对象,然后将内存地址赋给指针,之后我们就可以通过内存地址访问堆中的对象, 假如要删除该对象,我们只需要使用关键字delete,那么就会删除指针指向的对象并释放存储对象的内

解析 指针数组,数组指针,函数指针

一 :关于指针和堆的内存分配 指针数组 : 一个数组里放的都是指针,我们把他叫做指针数组 int * a[10]; 由于它是一个数组,他是不能从堆空间里申请空间的. 只能做个循环,每个元素去申请空间,或者每个元素去指向另外的地址空间. 数组指针 : 一个指向一唯或者多唯数组的指针: int * b=new int[10]; 指向一唯数组的指针b ; 一些例子: int (*b2)[10]=new int[10][10]; 注意,这里的b2指向了一个二唯int型数组的首地址. 注意,这里的b2的类

C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com

原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 本文由 arthinking 发表于315 天前 ⁄ itzhai.com原创文章 ⁄ C语言 ⁄ 评论数 3 ⁄ 被围观 1,775 views+ 指针数组: 在一个数组中,如果它的元素全部都是指针类

指针和引用(2)指针常量与常量指针

1.知识点 1.1指针常量--指针类型的常量 (1)指针常量本质是常量,指针用来说明常量的类型,表示该常量是一个指针类型的常量. (2)在指针常量中,指针的值不可变,即始终指向同一个地址. (3)但指针所指向的地址的值是可以通过*p来改变的. 用法如下: 1 //技巧: 2 //(1)读法:从左到右读,前面的是修饰词,后面的是主语 3 //如先出现指针(*),后出现常量(const),所以是指针常量 4 //(2)哪个东西不可变:直接看const后边是什么就什么不可变 5 //const后边是指

指针和引用(3)指针数组和数组指针

1.知识点 1.1指针数组--存放指针的数组 (1)指针数组本质上是一个数组,指针是数组中的内容,表示数组中的每个元素都是指针,因此指针数组就是存放指针的数组.下面是指针数组的用法: 1 int a = 10, b = 20; 2 int *p[3]; 3 p[0] = &a; 4 p[2] = &b; (2)指针数组的定义可以抽象为:指向变量类型 * 数组名称[数组长度]. (3)[]的优先级高于*,所以[]与p先结合,说明p是一个数组,长度为3,其数组元素的类型是int *. 1.2数

C指针原理(15)-C指针基础

简单C指针 指向整数的指针,以及指针的指针 [email protected]:~?%?vim?test1.c #include?<stdio.h> int?main(void){ ????????int?x; ????????x=128; ????????int?*myp=&x; ????????int?**mypp=&myp; ????????printf("x:%d\n",x); ????????printf("myp:%u\n",

指针常量和常量指针的区别

1.指针常量——指针类型的常量 在指针常量中,指针自身的值是一个常量,指针变量不允许修改.如同次指针指向一个地址该地址不能被修改,但是该地址里的内容可以被修改定义格式如下: int *const a=5; 或 int a,b: int * const p=&a :p=&b;//操作错误 例:  #include <iostream> using namespace std; int main() { int a = 3; int m[2] = { 1, 2 }; int *co

指针进阶 - 字符串与指针 &amp; 数组与指针

昨天的随笔里忘记提的重要一点: 指针指向的地址是有长度的,但是指针就是个针,一个针只有一个针尖,只能指向一个地址. 当我们用这种方式测量指针长度时 char *pstring; printf("%d\n", sizeof(*pstring)); 实际上我们测的不是指针占据的内存大小,而是指针指向的数据占据的内存大小,哪怕为空.由于代码中是char型,所以输出结果为1. 当我们测量却忘记带 * 号时,如: printf("%d\n", sizeof(pstring))

指针实现两数交换和指向函数的指针

指针就是地址,而指针变量就是存储地址的变量. 1.指针与函数 利用指针解决: C语言中函数的参数采用"单向传递",故第一个程序中改变形参不会改变实参,而在第二个程序中,使用指针变量作为参数,改变指针变量所指向的值,函数调用结束后,变量值被保留下来. 2.指向函数的指针的应用