C指针介绍(1)

每日一言

⭐「 一声梧叶一声秋,一点芭蕉一点愁,三更归梦三更后。 」–水仙子·夜雨-徐再思


指针的简单介绍

C语言指针是C语言中一种非常重要的数据类型,它可以存储内存地址,通过操作指针可以实现对内存中数据的直接访问和修改。C语言指针的使用是C语言高级特性的一个重要组成部分,也是C语言程序员必须掌握的基本知识之一。指针在C语言中广泛用于数据结构、动态存储分配、函数指针等方面。本系列将介绍指针的基本概念、指针的定义和声明、指针的运算、指针和数组、指针和函数等内容,帮助读者理解C语言指针。

内存和地址

在讲指针之前,首先要先了解内存和地址。

内存是计算机中用来存储数据和程序的部件,它被分成了许多个存储单元,每个存储单元都有一个唯一的地址用来访问它。在程序运行时,数据会被加载到内存中,程序也会在内存中执行。

地址是内存中每个存储单元的唯一标识符,它用来定位并访问内存中的数据。每个地址都是一个数字或一组数字,它们按照一定的顺序排列,可以被用来读取或写入内存中的数据。

指针在内存中的存储

指针是一个变量,它存储了一个地址,这个地址指向内存中的某个位置。在内存中,每个变量占用一段连续的空间,这段空间的大小取决于变量的类型。指针所占用的空间大小通常是固定的,例如在32位操作系统上,指针的大小通常是4字节,而在64位操作系统上,指针的大小通常是8字节。

当声明一个指针变量时,计算机会为这个指针分配一段内存,这段内存的大小是固定的,并且与指针的类型相关。例如,如果声明一个int类型的指针变量,那么计算机会为这个指针分配4/8字节的内存空间。

ps:
在32位系统下:int占4个字节
在64位系统下:int占8个字节

当指针被赋值时,它会存储一个内存地址,这个地址指向某个变量或对象的内存空间。当使用指针访问该变量或对象时,计算机会将该地址解引用,得到指向内存中实际变量或对象的指针,然后就可以对其进行操作或读取其值。

指针的定义和声明

指针是一个变量,其值表示另一个变量的地址。指针可以用来访问、修改另一个变量的值。

指针的声明格式为:类型 *变量名;其中,类型表示指针所指向的变量的类型,变量名表示指针的名称。

下面是一个简单的指针变量

int a= 10;
int *pa = &a;
*pa = 20;

其中
在这里插入图片描述

在这里插入图片描述
以上代码执行的效果就是将a的值改为20。

那么怎么理解这个过程呢?

我们可以把a看做自己,我点了一份外卖,在电话中,我们告诉了外卖小哥(pa)我的家庭住址,于是外卖小哥(pa)通过地址找到了我,将外卖送到了我手上。

指针的类型决定了对指针解引用的时候一次能操作几个字节,在这其中有一种特殊的类型

泛型指针

所谓 void * 指针是指无具体类型的指针(或者叫泛型指针),这种类型的指针可以用来接受任意类型的地址,但相对的void * 类型的指针不能直接进行指针的加减和解引用的运算。如果非要运算,请先强制类型转换!!!

指针的关系运算

指针的运算包括两种:算术运算和关系运算。

算数运算

指针可以进行加、减运算。
对于指针p,p+1表示p所指向的下一个内存单元的地址,p-1表示p所指向的前一个内存单元的地址。这种运算的本质是在指针所指向的地址上加上某个值,得到一个新的地址。
在这里插入图片描述

注意:在进行指针运算时,要确保两个指针指向的内存是同一块空间,且指针运算不会越界。

关系运算

指针可以进行比较运算。例如,对于指针p和q,p>q表示p所指向的地址大于q所指向的地址,p<q表示p所指向的地址小于q所指向的地址。


结语

请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
想成为大佬那就保持空杯心态加油努力吧!


都看到这里啦!真棒(*^▽^*)

可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家

编程小白写作,如有纰漏或错误,欢迎指正


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

月临水

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

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

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

打赏作者

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

抵扣说明:

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

余额充值