C语言天花板——指针(初阶)

这篇具有很好参考价值的文章主要介绍了C语言天花板——指针(初阶)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🌠🌠🌠

大家在刚刚接触C语言的时候就肯定听说过,指针的重要性以及难度等级,以至于经常“谈虎色变”,但是今天我来带大家走进指针的奇妙世界。🎇🎇🎇

C语言天花板——指针(初阶),c语言,开发语言


一、什么是指针🤔

指针理解的两个要点:

1️⃣指针是内存中一个最小单元的编号,也就是地址

2️⃣平常口语中说的指针,通常指的是指针变量,是用来存放地址的变量

数据存储在内存中,是以二进制的方式进行存储的,每一个二进制找到它对应的地址存储起来

C语言天花板——指针(初阶),c语言,开发语言

例如这样的一个整型变量a,在内存中他的存储方式就是:

C语言天花板——指针(初阶),c语言,开发语言我们可以看到这样一个一个的格子,这一个格子便是我们的内存单元,单位是字节,上面代码中的整型变量a,就占四个字节,也就是图中红色区域开辟的空间,里面存的就是变量a。  🎊🎊🎊                                                      C语言天花板——指针(初阶),c语言,开发语言                                                                                                          🥳🥳🥳                                                              🥳🥳🥳                               单元编号 == 地址 == C语言中的“指针”

二、指针类型 🤔

同数据类型一样,指针也分各种类型,如图:

C语言天花板——指针(初阶),c语言,开发语言

值得注意的是指针大小是固定的,在32位的环境下占4位,64位的环境下占8位

那么在抛出一个问题,既然所占字节大小都一样为什么还要区分指针类型呢?

指针类型有意义么?🤔🤔🤔

1️⃣指针类型决定了在解引用操作的时候,访问了几个字节

在int类型的指针中,解引用会访问4个字节

C语言天花板——指针(初阶),c语言,开发语言

在char类型的指针中,解引用只会访问1个字节

C语言天花板——指针(初阶),c语言,开发语言

2️⃣指针类型决定了指针在+1/-1跳过了几个字节

C语言天花板——指针(初阶),c语言,开发语言

C语言天花板——指针(初阶),c语言,开发语言

三、野指针🤔

概念:指针指向的位置是不可知,不确定的,随机的。

野指针成因:

1️⃣指针未初始化

2️⃣指针越界访问

3️⃣ 指针指向的空间释放

如何规避野指针:

🎇指针初始化

🎇避免指针越界

🎇指针指向的空间释放,指针及时置NULL

🎇避免返回局部变量的地址

🎇指针使用之前检查其有效性

四、指针运算🤔

1️⃣整数加减整数

指针+-整数->实际上是移动了一个指针类型的大小,而指针大小一般是4/8个字节

int main(){
    int arr[] = { 10,9,8,7,6,5,4,3,2,1 }
    int* p = arr;
    p++;
return 0;
}

C语言天花板——指针(初阶),c语言,开发语言

2️⃣指针-指针

前提:两个指针指向的是同一块区域,指针类型是相同的
int main()
{
	int arr[10] = { 0 };
	//指针-指针的前提:两个指针指向同一块区域,指针类型时相同的
	//指针-指针差值的绝对值,指针和指针之间的元素个数
	printf("%d\n", &arr[9] - &arr[0]);
	printf("%d\n", &arr[0] - &arr[9]);

	return 0;
}
C语言天花板——指针(初阶),c语言,开发语言
结论:指针-指针得到的差值的绝对值是指针与指针之间的元素个数

五、二级指针🤔

概念:二级指针变量是存放一级指针变量的地址的

int main()
{
	int a = 10;
	int* p = &a;//p是指针变量,一级指针变量
	int** pp = &p;//pp指针变量,二级指针变量
	//int** * ppp = &pp;//pp是指针变量,三级指针变量
	//......
	return 0;
}

C语言天花板——指针(初阶),c语言,开发语言

C语言天花板——指针(初阶),c语言,开发语言

其实指针不止有一级指针和二级指针,还有三级四级甚至是多级,但是我们在正常情况下很少可以用到。

六、指针数组🤔

指针数组是指针还是数组?🤔

答案:是数组,是存放指针的数组🛹🛹🛹

字符数组:存放字符的数组

整型数组:存放整形的数组

指针数组:存放指针(地址)的数组

int main()
{
	int arr1[] = { 1,2,3,4,5 };
	int arr2[] = { 2,3,4,5,6 };
	int arr3[] = { 3,4,5,6,7 };
	//指针数组
	int* arr[] = { arr1,arr2,arr3 };
	return 0;
}

注意:(数组名可以表示首元素的地址)

今天我们的指针就讲到这里,之后我还会更新一些更高阶的指针,感谢大家的支持!!!

C语言天花板——指针(初阶),c语言,开发语言文章来源地址https://www.toymoban.com/news/detail-721891.html

到了这里,关于C语言天花板——指针(初阶)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 终于见识到 Python 的天花板。。

    Python 有很多衍生方向,比如 web 开发、网络爬虫、数据分析、数据挖掘、机器学习、人工智能等等,就业范围是很广的,Python 相较于别的编程语言对小白入门还是很友好的, Python 入门推荐这份学习资料: PYTHON全案例实践 这本学习资料在内容组织和框架设计上具有两个鲜明

    2023年04月09日
    浏览(25)
  • 深度学习准确率提升之天花板分析

    OCR文字识别流水线主要分为三个模块:文字检测-字符分割-字符识别 训练完成后整个系统的准确率是72%,需要进一步提升准确率就需要单独分析每个模块的提升空间。 1)对于文件检测模块,把训练集的图像人工确保标注准确的文本位置来作为输入,系统准确率提升到89% 2)对

    2024年02月12日
    浏览(43)
  • Amazon SageMaker简直就是机器学习平台的天花板

    最近参与了亚马逊云科技【云上探索实验】活动,通过Amazon SageMaker基于Stable Diffusion模型,非常简单快速搭建的第一个AIGC,一开始以为非常复杂,不懂动手操作,但实际上操作非常简单,没有想象中的恐怖,整体体验非常愉快,我先对Amazon SageMaker简单介绍,然后对基于Stabl

    2023年04月09日
    浏览(44)
  • Kyligence Zen 简直就是一站式指标平台的天花板

    1 、 Kyligence Zen 是做啥的? Kyligence Zen是一款指标分析和管理的工具,是基于 Kyligence 核心 OLAP 能力打造,Kyligence Zen 提供集业务模型、指标管理、指标加工、数据服务于一体的一站式服务,它的市场定位是一站式云端指标平台 我们可以看到官网非常简洁丝滑。 2 、 Kyligence Z

    2024年02月05日
    浏览(37)
  • 提示词的天花板来了- ChatGPT 指导学习知识点

    人类导师还是人机互卷 https://github.com/JushBJJ/Mr.-Ranedeer-AI-Tutor/ 访问 ChatGPT网站 选择 GPT-4(或更高版本)模型 将 Mr_Ranedeer.json 的内容复制粘贴到 ChatGPT 让 Mr. Ranedeer 带领您完成配置过程 开始学习吧! 支持以下命令: /feedback:向AI导师请求反馈。 /test:请求一个测试来评估您的

    2024年02月03日
    浏览(37)
  • 阿里巴巴官方上线!号称国内Java八股文天花板,首次开源!

    继续找工作,现在的很多程序员还在谈技术,谈这个就没劲了其实,因为现在的失业是结构性失业。 比如说你到40岁了,你还有大厂履历,那你毕业了以后,找工作的难度肯定会加大。一方面是新工作的待遇和薪资往往不及预期,另一方面就是竞争激烈。 而我认识的两个猎头

    2024年02月07日
    浏览(49)
  • ChatGPT 平替天花板:HuggingFace 版 ChatGPT 来了,无需魔法无需等待直接起飞 ~

    二话不说上链接 https://huggingface.co/chat/ 请直接问中文问题,要是返回英文直接上浏览器翻译同步没毛病。 如果体验过了,且听我分(jiao)说(bian)一下,HuggingFace 版 ChatGPT 如何能当得起 ChatGPT 平替天花板 。 我们先来看看背后的公司HuggingFace 是干啥的? HuggingFace 是一个非常

    2024年02月01日
    浏览(50)
  • AI绘画天花板——Midjourney注册使用保姆级教程(5月5日验证有效)

    大家好,我是可夫小子,关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。加我,备注:aigc,拉你进群。  现在市面上AI绘图大概有三大阵营:Midjourney、Stable Diffusion,还有一个就是OpenAI实验室的DALL.E。每个平台各有其特点,其中,效果最好,使用最广泛,而且最便捷的

    2024年02月09日
    浏览(52)
  • Java 岗史上最全八股文面试真题汇总,堪称 2023 年面试天花板

    现如今,Java 面试的本质就是八股文,把八股文面试题背好,面试才有可能表现好。金九银十招聘黄金季已经来临!大家在考研和找工作中纠结的时候,不妨先看一下面试题,毕竟我们的最终目标就是为了找一份心仪的工作!好工作都是早下手为强的,所以同学们要早做准备

    2024年02月05日
    浏览(31)
  • 如何搭建关键字驱动自动化测试框架?这绝对是全网天花板的教程

    目录 1. 驱动自动化测试介绍 2. 搭建驱动自动化测试框架 步骤1:选择测试工具 步骤2:定义测试用例 步骤3:编写测试驱动引擎 步骤4:实现测试库 步骤5:执行测试 3. 实现驱动自动化测试的关键技术 技术1:测试工具 技术2:测试驱动引擎的编写 技

    2023年04月20日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包