C语言处理指针问题中,二级指针与一级指针的区别是什么?

1、一级指针就是指指针,就是内存地址,二级指针就是指向指针的指针,就是地址的地址,打个比方,有一个箱子,里面有要的东西,钥匙能打开箱子,钥匙就是一级指针,你要用钥匙打开别的箱子去拿到开要的东西的箱子的钥,那手上的钥匙就是二级指针,如此类推。
2、例如:
int a; //a是一个int类型的变量,它的值是一个整数
int *pa = &a; //pa 是一个int *类型的变量,它的值是一个int型变量的地址
int **ppa = &pa; //ppa是一个int **型的变量,它的值是一个int *型变量的地址

-------------------------------------------------------------------------------------------------------------------

int **ppa实际上里面装的就是一个int*的地址 int *pa实际上里面装的就是一个int型的地址 仅此而已

-------------------------------------------------------------------------------------------------------------------

书上定义:

例如int**p,它分成两部分,int*和(*p),后面的(*p)表示p是指针变量,前面的int*表示p指向的是int*型的数据。

也就是说p指向一个整型指针变量(而这个整型指针变量指向一个整形数据

-------------------------------------------------------------------------------------------------------------------

综上:

一级指针是存储变量地址;你可以再把一级指针看成一个变量,二级指针存储一级指针的地址。

原文地址:https://www.cnblogs.com/qkhbnu/p/11666882.html

时间: 2024-10-29 07:29:19

C语言处理指针问题中,二级指针与一级指针的区别是什么?的相关文章

彻底理解链表中为何使用二级指针或者一级指针的引用

 彻底理解链表中为何使用二级指针或者一级指针的引用 http://blog.csdn.net/u012434102/article/details/44886339 struct _node  {  void*data;  struct_node *prior;  struct_node *next;  } typedef_node Node;   //给这个_node结构体定义一个别名,任何使用_node的地方都可以用Node来替换 typedef_node* PNode;   //给这个指向

(C++)函数参数传递中的一级指针和二级指针

(C++)函数参数传递中的一级指针和二级指针 主要内容: 1.一级指针和二级指针 2.函数指针传递的例子 3.什么时候需要传递二级指针? 4.二级指针在链表中的使用 1.一级指针和二级指针 一级指针:即我们一般说的指针,就是内存地址: 二级指针:指向指针的指针,就是地址的地址: 如: int a=1; int *p=&a; // p为a变量的地址,通过*p可以得到a的值 int **q=&p; // q为p指针的地址,通过**q可以得到a的值 2.函数指针传递的例子 程序1: 1 2 3

【指针篇】C语言:指针与数组的区别,数组指针与指针数组的剖析。

指针就是指针,指针变量在 32位系统下,永远占 4  个byte ,其值为某一个内存的地址.指针可以指向任何地方,但是不是任何地方你都能通过这个指针变量访问到. 数组就是数组,其大小与元素的类型和个数有关.定义数组时必须指定其元素的类型和个数.数组可以存任何类型的数据,但不能存函数. 说起指针,就让我们想到数组.而数组和指针也是有区别的.指针,指的是描述一个变量的地址:我们可通过指针的偏移来指向下一个地址.数组,是描述相同元素的一个集合:数组名是常量地址,不可自加不可修改. 我们可以通过数组的下

一级指针,二级指针,指针数组,数组和指针

指针和数组指针是个用来存放地址的变量:&arr表示整个数组:arr数组名表示首元素的地址:指针解引用即表示指针所指向的内容比如:char ptr="abcdef";ptr; //指针解引用即表示它所指向的内容,即abcdefptr; //ptr里保存的是字符串的地址2.一级指针一级指针就是指指针,里面放的就是元素的地址,我们可以通过访问元素的地址来找到该地址里存放的内容,即元素本身.比如:char str1[ ]={1,2,3,4,5,6,7};3.二级指针二级指针就是指向一级

C语言一级指针、二级指针、数组作为参数传递需要注意的若干问题

在C语言编程时,经常会用到指针或数组作为参数传递,但有时结果却并不是自己想要的.下面总结下指针.数组作为参数传递需要的问题. 一级指针与二级指针的使用范围: 一级指针存放变量的地址,指向的值是变量的内容.如int* p={1,2,3}, p=数组的首地址,*p=数组的第一个值: 二级指针存放一级指针的地址,指向一级指针.如int*p ={1,2,3}, int**pp=&p,pp=指针p的首地址,*pp=数组的首地址,**pp=数组第一个值1. 在作为参数传递时什么时候用一级指针,什么时候用二级

C语言一级指针与二级指针

指针的概念 指针就是地址, 利用这个地址可以找到指定的数据 指针就是地址, 那么在使用的时候, 常常会简单的说 指针变量为指针 指针变量就是存储地址的变量 int *p1;// 申请了一个变量, 即在内存中开辟了一块内存, 存储数据 // 开辟了 8 个字节, 在 Mac 下 指针都占 8 个字节 使用指针, 实际上应该说成使用指针变量 1> 算术运算 +1 移动几个字节? 看类型: int *,  long *,  char * 2> 获得地址表示的数据 指针里面存储的是地址, 就可以将该地

【示例】C语言中利用数组存放函数指针

C语言中利用数组存放函数指针,增加函数使用的灵活性.使用时只需提供数组索引,即可调用不同函数. 预备知识: 1.指向函数的指针 一个函数在编译时被分配一个入口地址,这个地址就被称为函数的指针. 例如: int max(int,int); // 声明函数,比较两数大小 int (*p)(); //声明指向函数的指针变量 p=max; //将函数max的入口地址赋给指针变量p int c=(*p)(a,b); //调用函数 2.函数指针作为函数参数 该例子中每次给process函数不同实参(函数名)

C语言中字符数组和字符串指针分析

这几天搞Unix上的C程序,里面用到了很多字符数组和字符串指针,我记得在学完C语言后相当一段时间里,对指针这个东西还是模模糊糊,后来工作也没怎么 用到过C,虽然网上这类的文章也有很多,还是决定自己在这做个小总结,也算加深下自己的印象,写了下面的测试程序: #include <stdio.h> int main(int argc, char *argv[]){ char day[15] = "abcdefghijklmn";  char* strTmp = "opq

【C/C++学院】0726-cppIDE/一级指针/指针数组/函数指针/函数指针数组/二级指针

[送给在路上的程序员] 对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现. 对于一个架构师而言,掌握各种语言的优势并可以运用到系统中,由此简化系统的开发,是其架构生涯的第一步. 对于一个开发团队而言,能在短期内开发出用户满意的软件系统是起核心竞争力的体现. 每一个程序员都不能固步自封,要多接触新的行业,新的技术领域,突破自我. cppIDE 使用mfc和codeblocks中的mingw编译器.执行system命令中的bat批处理脚本. 一级指针 指针,结构体struct,