C语言之——指针变量的简单理解以及简单操作(一)

指针是C语言中很重要的一部分,那么指针到底是什么,在这里,小编将自己对于指针的理解用通俗易懂的语言总结如下。

一.指针是什么?

指针同int、char等一样,也是数据的类型。
指针类型的变量有很多种:如int*、char*等,虽然都是指针类型,但是这些都是截然不同的指针类型。
明白了指针是一种数据的类型之后,就来看看指针变量是干什么的。

int a=10;
int* p=&a;
printf("%d\n",a);
printf("%d\n",*p);
printf("%p\n",&a);
printf("%p\n",p);

结果如下图所示:
在这里插入图片描述
我们可以很清楚地看到指针变量存放地是变量在内存中的地址。
那么我们就可以把指针变量理解成一个房间号。
解引用符号 ‘ * ’,在之前地文章中也说过就相当于是拿着房间号,打开房间,去访问房间内的信息
用下图来表示:
在这里插入图片描述
了解了指针是什么以后。再来了解指针的简单操作。

二.各种指针的含义:

1.一级指针:简单的理解就是只有一个“*”,存放某变量的地址。
2.二级指针:形式就是“**”,存放指针变量的地址。
在这里插入图片描述
3.指针和数组:指针是存放变量地址的变量,数组是一段连续的内存空间,当数组名作为函数的参数时,则传进去的是指向数组首元素的地址,相当于指针。
4.指针数组:数组元素均是指针类型的变量。

三.指针的简单操作

之前也讲到过,指针类型的大小与其类型无关,而与操作系统的位数有关。
简单来说就是:无论是int*、还是char*等。
32位系统下:4个字节
64位系统下:8个字节

那么,我们之前将数组的时候说过,当数组是函数参数的时候会被隐式转换成指向数组首元素地址的指针
其实,在这里,需要注意的是数组和指针之间的转换关系:

a[i]<=>*(a+i);

这样我们就有了以下操作:
指针与数组间的转换:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里需要注意的是数组指针的概念:
注意:
1.数组指针:本质上还是指针,形式为&+数组名。
2.指针+1,这种运算表示下一个空间,具体要看指针变量的类型。如:int* 跳过四个字节,char*就跳过一个字节。
3.但是,数组指针+1跳过的是整个数组

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值