指针初级理解

指针初识

一. 一级指针

什么是指针呢?其实指针就是一个存放内存地址的变量,通常理解为“指向某个空间”,而一级指针,顾名思义是存放一个已知空间(已知量)的地址的变量
例如:
int a = 10;
int* p  = &a;
printf("%d", *p);
这里,p是一个一级指针,其中存放的就是已知变量a的地址,当我们用“*”号去解引用它时,编译器则会在p的地址中解引用当前地址存放的值。相当于一个一维数组。但本质不是一维数组

二. 二级指针

一个存放指针的一级指针,即在一级指针的地址中存放的是另一个值的地址,我们就叫它二级指针
例如:
int a = 10;
int *p1 = &a;
int **p2 = &p1;

三. 指针和数组

指针和数组的用法基本相同,但本质不同:
1. 存储方式不同,数组是按顺序存储,并且内存的大小由定义的变量类型决定,而指针的存储不一定连续且都是4字节的空间存储.
2. 赋值方式不同,数组可以给定空间大小后不进行初始化,但是指针必须初始化或使用动态开辟内存
3. 数组是数组,指针式指针,各有优缺点,但本质不相同

四. 指针数组

顾名思义,一个存放指针类型变量的数组
例如:
int* arr1[10]; //整形指针的数组
char *arr2[4]; //一级字符指针的数组
char **arr3[5];//二级字符指针的数组
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值