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

一、什么是指针:

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

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

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

  • 字符指针

用字符指针吧ch值改掉。

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

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*  】

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

  • 数组指针

数组指针的定义

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

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

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

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

int*

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

&数组名和数组名

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

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

如果都给他们+1会怎样

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

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

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

怎么让数组指针存放数组的地址?数组的地址也是地址,地址就应该存在指针变量里,所以数组指针就是存放数组的地址,(*p2)就是指针了,而且指向数组,数组里有10个元素所以为[10]。那么存的元素是什么类型,为int类型所以最后的格式为int (*p2)[10]=&arr

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/162489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玻璃加工ERP包含些模块?玻璃加工ERP好用吗

玻璃制品的类型多、规格不一、营销策略灵活、销售渠道广泛、生产关联业务环节。在当今这个市场竞争日益激烈的时代,如何有效整合各个业务环节,提升多部门协作效率,随时进行数据分析等,是每个玻璃加工企业面临的管理难题。 在数字…

【C语法学习】27 - 字符串转换为数字

文章目录 1 atoi()函数1.1 函数原型1.2 参数1.3 返回值1.4 转换机制1.5 示例1.5.1 示例1 1 atoi()函数 1.1 函数原型 atoi():将str指向的字符串转换为整数,函数原型如下: int atoi(const char *str);1.2 参数 atoi()函数只有一个参数str&…

docker部署paddleocr

内容仅供参考学习 欢迎朋友们V一起交流: zcxl7_7 环境 1. CentOS7  2. docker  3. PaddleOCR2.5.2 1.准备 1. 首先准备好需要打包的项目 2. 在该项目中创建Dockerfile文件 touch Dockerfile2. 编写Dockerfile # 从Python 3.8的官方镜像中创建(pyt…

matlab使用scatter函数画图时报错“数组索引必须为正整数或逻辑值”解决办法

一、背景 在使用matlab的scatter函数画图时报错“数组索引必须为正整数或逻辑值”。 scatter函数说明:scatter(x,y) 在向量 x 和 y 指定的位置创建一个包含圆形标记的散点图。 二、解决办法 如果使用scatter函数时报上述错误,尝试将连续函数先转换为函…

ubuntu编译sqlite3并使用

SQLite3是一种轻量级的关系型数据库管理系统,它是在C语言基础上实现的。SQLite3具有许多优点,例如: 1.灵活:它可以在多种操作系统上运行,并且可以将多个数据库文件合并成一个文件。 2.易于使用:SQLite3使用…

基于爬行动物算法优化概率神经网络PNN的分类预测 - 附代码

基于爬行动物算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于爬行动物算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于爬行动物优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

八股文面试day6

什么是代理?为什么要用动态代理? 代理模式大概意思是:为其他对象提供一个代理项或者是占位符,以控制对这个对象的访问 代理模式核心思想:创建一个代理对象,在客户端和目标对象之间的一个中介,…

35的程序员被辞了可以自己接外包啊?为什么都那么悲观呢?

35的年纪,上有老下有小,即将步入中年危机,在这个节骨眼上被辞,能不悲观吗? 在这个年纪人们往往追求的是稳定的工作和生活,而进入一个自己不熟悉的行业并不是一个好的选择。 况且,你认为的外包…

诊断0x27服务解密文件DLL制作与使用

DLL文件在CANoe的使用方法 DLL文件在诊断里面可以用在0x27秘钥服务里面,对解密有帮助,在下图位置加载。 DLL文件制作 vector公司本来就给了我们一个demo,先拷贝一份下来,别把原来的文件给改坏了。我这个是CANoe12,de…

Visio给立方体的每条边填充不同的颜色,超好用的visio小技巧~

Visio给立方体的每条边填充不同的颜色,超好用的visio小技巧~ 如何实现立方体的填充颜色从左边的纯色到右边的多色呢?一起学起来吧~ 在visio中绘制一个普通的立方体; 用一个大的矩形盖住刚才绘制的立方体; 全选之后找到 开发工具-&…

matplotlib

设置中文字体,图片大小,分辨率,中文负号 符号 x轴和y轴 设置x轴和y轴的刻度 字体大小 线条样式 绘制多个线条 图例 显示每个坐标值 gca 分辨率 画布尺寸 创建图形对象 不能直接使用区域对象作画 绘制多子图 均等的划分画布 柱状图 同一位置多…

类加载过程

Java类加载过程包括加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)五个阶段。这些阶段是按照顺序逐步执…

Javascript中的宏任务与微任务

事件循环 JavaScript 语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。为了协调事件、用户交互、脚本、UI 渲染和网络处理等行为,防止主线程的不阻塞,Event Loop 的方案应用而生。Event Loop 包含两类:一…

购买Zoho CRM系统要花多少钱?

相信对CRM系统有过了解的人都知道,CRM系统的价格取决于功能需求,用户数量,部署方式,定制开发等因素。Zoho CRM是全球领先的云CRM系统,自2005年推出以来,累计服务25万企业,那么Zoho CRM系统的价格…

python批量修改文件夹下的后缀名

python批量修改文件夹下的后缀名 (所有的.txt结尾的文件,替换成.py结尾) 1、需要将某个文件夹下所有的.txt结尾的文件,替换成.py结尾 2、Python代码: import os# 指定需要更改文件的目录 dir_path D:/study/py/4#…

Vatee万腾数字引领未来:vatee科技力量的独特路径

在当今数字化浪潮的推动下,Vatee万腾以其卓越的科技力量,正引领着未来的数字化时代,描绘着一条独特的发展路径。通过持续创新、前瞻思维和对技术的深度理解,Vatee万腾正在为未来的科技发展创造新的可能性,塑造着数字引…

微信开放平台Android平台应用签名怎么填写

winR 输入cmd 进到本地签名文件的目录下 输入 keytool -list -v -keystore <keystore文件路径> -alias <别名>请将 <keystore文件路径> 替换为您的密钥库文件&#xff08;通常是 .jks 或 .keystore 文件&#xff09;的路径&#xff0c;而 <别名> 则是…

Speaker Verification,声纹验证详解——语音信号处理学习(九)

参考文献&#xff1a; Speaker Verification哔哩哔哩bilibili 2020 年 3月 新番 李宏毅 人类语言处理 独家笔记 声纹识别 - 16 - 知乎 (zhihu.com) (2) Meta Learning – Metric-based (1/3) - YouTube 如何理解等错误率(EER, Equal Error Rate)&#xff1f;请不要只给定义 - 知…

oracle数据库巡检常见脚本-系列二

简介 作为数据库管理员&#xff08;DBA&#xff09;&#xff0c;定期进行数据库的日常巡检是非常重要的。以下是一些原因&#xff1a; 保证系统的稳定性&#xff1a;通过定期巡检&#xff0c;DBA可以发现并及时解决可能导致系统不稳定的问题&#xff0c;如性能瓶颈、资源利用率…

人工智能:让生活更便捷、更智能——探讨人工智能在生活中的作用与挑战

文章目录 前言人工智能的定义与分类人工智能的领域一、智能语音助手改变日常生活二、智能驾驶带来出行革命三、人工智能在医疗健康领域的应用四、教育领域的人工智能创新 人工智能的应用生活方面的影响工作方面的影响 应对AI带来的挑战后记 前言 人工智能相关的领域&#xff0…