从零开始的c语言日记day36——指针进阶

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

一、什么是指针:

指针的概念:1.指针就是个变量,用来存放地址,地址唯一标识一块内存空间。

⒉指针的大小是固定的4/8个字节(32位平台/64位平台)。

  1. 指针是有类型,指针的类型决定了指针的+-整数的步长,指针解引用操作的时候的权限。4.指针的运算。
  • 字符指针

用字符指针吧ch值改掉。

从零开始的c语言日记day36——指针进阶,c语言,学习,监督学习

下面这段程序不能理解为p里放了一个字符串,应该理解把字符串首字符a的地址,赋给了p。%s打印字符串从第一个字符开始一直到斜杠0结束

从零开始的c语言日记day36——指针进阶,c语言,学习,监督学习

从零开始的c语言日记day36——指针进阶,c语言,学习,监督学习

Abcdef/0为常量字符串,并且前面加了const为不可修改状态。所以在内存中只需要存和一份就够了,因为他都已经不可修改了自然是大家都要用这个内容所以才不可修改。所以p1和p2为相同的,打印p1==p2

而第二种是数组类型,因为数组需要向内存申请空间来储存数组里面的元素,所以每用一次都需要申请一次空间,自然arr1和arr2的地址不一样了。

  • 指针数组

顾名思义就是用来存放指针的数组

Int arr[10]整形数组每个元素为【int int int int int int int int int int 】

Char ch[5]字符数组           【char  char  char  char  char   】

Int* arr2[5]存放整形指针的数组【int*  int*  int*  int*  int*  】

Char* arr [ 5]存放字符指针的数组【char*  char*  char*  char*  char*  】

从零开始的c语言日记day36——指针进阶,c语言,学习,监督学习

Parr【】里存了3个数组的首元素地址,当每一个循环则换到下一个元素即数组地址,打印的时候解引用就打印出元素了

从零开始的c语言日记day36——指针进阶,c语言,学习,监督学习

  • 数组指针

数组指针的定义

数组指针是指针?还是数组?答案是:指针。

整形指针: int * pint;能够指向整形数据的指针。浮点型指针:float * pf;能够指向浮点型数据的指针。那数组指针应该是:能够指向数组的指针。

从零开始的c语言日记day36——指针进阶,c语言,学习,监督学习

数组指针——指针——指向数组的指针

整型指针——指向整型的指针

int*

字符指针——指向字符的指针

&数组名和数组名

从零开始的c语言日记day36——指针进阶,c语言,学习,监督学习

此程序不能把数组名理解为首元素地址,因为如果是首元素地址的话sz计算应该是这个地址的大小,但实际结果不是。

  1. 数组名通常表示的都是数组首元素的地址,但是有两点例外,sizeof(数组名)这里的数组名表示整个数组的大小
  2. &数组名,这里的数组名依然表示整个数组,所以&数组名取出的是整个数组的地址。从表面意义上来讲取出的地址是一样的,但是数组总要有个地址所以数组的地址和数组首元素的地址是一个相同的地址,但他们的本质不一样

如果都给他们+1会怎样

从零开始的c语言日记day36——指针进阶,c语言,学习,监督学习

可以看到第大一段和第二大段的结果是一样的,arr表示首元素的地址那么首元素地址为int*类型,int*指针如果+1就是跳过4个字节。

第二段同理,因为两端程序地址是一样的

但是第三大端则是直接跳过了40个字节是整个数组的字节

从零开始的c语言日记day36——指针进阶,c语言,学习,监督学习

怎么让数组指针存放数组的地址?数组的地址也是地址,地址就应该存在指针变量里,所以数组指针就是存放数组的地址,(*p2)就是指针了,而且指向数组,数组里有10个元素所以为[10]。那么存的元素是什么类型,为int类型所以最后的格式为int (*p2)[10]=&arr文章来源地址https://www.toymoban.com/news/detail-755310.html

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

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

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

相关文章

  • 从零开始学习JavaScript:轻松掌握编程语言的核心技能③

    🏘️🏘️个人简介:以山河作礼。 🎖️🎖️: Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主 🎁🎁:Web全栈开发专栏:《Web全栈开发》免费专栏,欢迎阅读! 📑📑 JavaScript中的if…else语句是一种条件语句,用于在满足特定条件时执行不同的代码块 。 📌

    2024年02月08日
    浏览(67)
  • 从零开始学习JavaScript:轻松掌握编程语言的核心技能⑤

    🏘️🏘️个人简介:以山河作礼。 🎖️🎖️: Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主 🎁🎁:Web全栈开发专栏:《Web全栈开发》免费专栏,欢迎阅读! 📑📑 在 JavaScript 中,函数可以通过 function 来定义 。 📌 函数定义的一般语法如下: 其中,

    2024年02月08日
    浏览(68)
  • 从零开始学习JavaScript:轻松掌握编程语言的核心技能④

    🏘️🏘️个人简介:以山河作礼。 🎖️🎖️: Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主 🎁🎁:Web全栈开发专栏:《Web全栈开发》免费专栏,欢迎阅读! 📌 JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。 表单数据经常需

    2024年02月08日
    浏览(57)
  • 从零开始学习JavaScript:轻松掌握编程语言的核心技能①

    🏘️🏘️个人简介:以山河作礼。 🎖️🎖️: Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主 🎁🎁:Web全栈开发专栏:《Web全栈开发》免费专栏,欢迎阅读! 📜📜 JavaScript 是一种脚本语言,用于在 Web 页面上执行交互式操作和动态效果 。它最初由 Brendan

    2024年02月07日
    浏览(68)
  • 从零开始学习JavaScript:轻松掌握编程语言的核心技能②

    🏘️🏘️个人简介:以山河作礼。 🎖️🎖️: Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主 🎁🎁:Web全栈开发专栏:《Web全栈开发》免费专栏,欢迎阅读! 📜 📜 JavaScript 函数是一段可以被重复调用的代码块。它可以接收输入参数,处理这些参数,然后返

    2024年02月08日
    浏览(69)
  • 【算法挨揍日记】day02——双指针算法_快乐数、盛最多水的容器

    202. 快乐数 https://leetcode.cn/problems/happy-number/ 编写一个算法来判断一个数  n  是不是快乐数。 「快乐数」  定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是  无限循环  但始终变不到 1。 如果这

    2024年02月11日
    浏览(35)
  • 从零开始学习vivado——day4 跑马灯(让8个LED灯以每个0.5s的速率循环闪烁)

    研一从零开始学习verilog!!!此时不学何时学! 第一次写博客,以此激励自己努力学习! 我跟的视频教程是b站的一个up主,小梅哥爱漂流。 ①编写端口代码: ②计数器 其中,一定是=,如果直接用=,则波形图会出现错误,从00000010到00000100的时间会非常短,导致整个图像看

    2024年02月02日
    浏览(48)
  • C语言-指针进阶-qsort函数的学习与模拟实现(9.3)

    目录 思维导图: 回调函数 qsort函数介绍 模拟实现qsort 写在最后: 什么是回调函数? 回调函数是一个通过函数指针调用的函数。 将一个函数指针作为参数传递给一个函数,当这个指针被用来调用所指向函数时, 我们就将此称为回调函数。 在举例之前,我们先学习一个C语言

    2024年02月15日
    浏览(54)
  • AI提示工程实战:从零开始利用提示工程学习应用大语言模型【文末送书-19】

    随着人工智能技术的飞速发展,大语言模型如GPT-4等在自然语言处理领域取得了令人瞩目的成果。而对于普通用户而言,如何利用这些强大的模型进行实际应用成为一个备受关注的话题。本文将介绍一种称之为“提示工程”的方法,通过简单的提示构建,让大语言模型为我们

    2024年02月19日
    浏览(51)
  • 【算法挨揍日记】day03——双指针算法_有效三角形的个数、和为s的两个数字

       611. 有效三角形的个数 https://leetcode.cn/problems/valid-triangle-number/ 给定一个包含非负整数的数组  nums  ,返回其中可以组成三角形三条边的三元组个数。 本题是一个关于三角形是否能成立的题目,首先我们假设三角形的三边(a,b,c),我们要保证两边之和大于第三边    题

    2024年02月12日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包