二级指针是什么意思?

如题所述

首先任何值都有地址 ,一级指针的值虽然是地址,但这个地址做为一个值亦需要空间来存放,是空间就具有地址 ,这就是存放地址这一值的空间所具有的地址,二级指针就是为了获取这个地址,

一级指针所关联的是其值(一个地址)名下空间里的数据,这个数据可以是任意类型并做任意用途,但二级指针所关联的数据只有一个类型一个用途,就是地址,指针就是两个用途提供目标的读取或改写, 那么二级指针就是为了提供对于内存地址的读取或改写

指针的表现形式是地址,核心是指向关系指针运算符“*”的作用是按照指向关系访问所指向的对象.如果存在A指向B的指向关系,则A是B的地址,“*A”表示通过这个指向关系间接访问B.如果B的值也是一个指针,它指向C,则B是C的地址,“*B”表示间接访问C如果C是整型、实型或者结构体等类型的变量或者是存放这些类型的数据的数组元素,则B(即C的地址)是普通的指针,称为一级指针,用于存放一级指针的变量称为一级指针变量。

A(即B的地址)是指向指针的指针,称为二级指针,用于存放二级指针的变量称为二级指针变量.根据B的不同情况,二级指针又分为指向指针变量的指针和指向数组的指针.

你可以将二维数组名理解成一个二级指针……

可以看看这个:

#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  
void memorylocate(char **ptr)  
{  
        *ptr=(char *)malloc(10*sizeof(char));  
}  
int main()  
{  
        char *buffer;  
        memorylocate(&buffer);  
        strcpy(buffer,"12345");  
        printf("buffer %s\n",buffer);  
        return 0;  
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-01
就是指向一级指针的指针。简单地说,如果一个二级指针指向一个一级指针,那么这个二级指针的值就是那个一级指针的地址。就像如果一个一级指针指向一个变量,那么这个一级指针的值就是那个变量的存储地址,这样容易理解。
第2个回答  推荐于2017-10-07
举个例子
char **a = {"abc", "bcd"};
1、a是一个指针
2、char*是一个指向char类型的指针,也就是说char*其实就是指向char类型的数组
3、char**也就是char*的指针,那么这个是什么?也就是指向char*的数组。本回答被提问者采纳
相似回答