C语言指针详解(上)

本文介绍了指针的基本概念,包括不同类型指针(如char*,int*,float*等)的作用,如何通过地址访问和修改变量,以及指针类型大小的区别。还探讨了指针加减在不同数据类型中的应用和数组与指针的关系。
摘要由CSDN通过智能技术生成

一.什么是指针

指针是一种类型,用来存储变量的地址的类型

有哪些类型呢

字符指针:char*

整型指针:int*

浮点型指针:float*

双精度浮点型指针:double*

空指针:void*

(每一个类型的指针,都指定存储该类型变量的地址)(void*后面在讲解)

比如说:

int a=0;//创建一个int整型变量
int* p=&a;//创建了一个int*类型的指针变量,可以存储int类型的地址
printf("%p",p)://打印a的地址(打印地址是%p)

我们看别人代码的时候,别人可能是这样写指针变量的:

int a=0;//创建一个int整型变量
int *p=&a;//这种形式

发现这俩总主要是*号在哪,下面这种方式用的人最多,但是原本的写法是上面这种,但是这两种写法都一样,只是形式上的不同

(上面我们对指针有了简单的了解,指针就是存储变量地址的变量)

二.怎样通过地址来访问变量

我们来看这个例子

通过*号来访问地址对应的值,和直接打印变量的值是一样的;

通过地址来改变变量的值也是可以的。

三.指针类型的大小

既然指针存的是地址,那么地址的大小肯定是一样的,我们来看一下(在64位环境下):

果然不出所料,他们的大小都一样,那么,为什么要分这么多呢

四.指针的加减

当我们对指针进行加减的时候,看例子:

int*类型加一,地址增加了4

char*类型加一,地址增加了1

我们又知道int类型大小为4,char类型大小为1

所以我们得知不同类型的指针变量,加减可以跳过不同的距离,加一次可以跳过该类型的字节数

五.数组和指针

我们知道数组在内存中的存储是连续的

我们就用一个p指针来慢慢遍历这个数组,因为数组在内存是连续的,指针加减在内存也是连续

这里有一个小细节,数组名其实就是首元素的地址,所以,我们可以这样操作

未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可不得兼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值