从零开始的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.hqwc.cn/news/207224.html

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

相关文章

2023年危险化学品经营单位主要负责人证模拟考试题库及危险化学品经营单位主要负责人理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2023年危险化学品经营单位主要负责人证模拟考试题库及危险化学品经营单位主要负责人理论考试试题是由安全生产模拟考试一点通提供,危险化学品经营单位主要负责人证模拟考试题库是根据危险化学品经营单位主…

反编译-ApkTool

ApkTool下载地址: Apktool | ApktoolA tool for reverse engineering Android apk fileshttps://apktool.org/ 1、使用 apktool 解包 执行 java -jar apktool_2.4.1.jar d demo.apk -o demo 命令 java -jar apktool_2.4.1.jar d demo.apk -o demo 其中 d 后面是…

警惕.locked勒索病毒,您需要知道的预防和恢复方法。

尊敬的读者: 随着网络技术的进步,勒索病毒已经成为一种极具威胁性的网络犯罪工具之一。其中,.locked勒索病毒是一种采用高级加密算法的恶意软件,目的是加密用户的文件,并勒索赎金以提供解密密钥。本文将介绍如何应对被…

Sleuth

Sleuth 一 引言 随着服务的越来越多,对调⽤链的分析会越来越复杂。它们之间的调⽤关系也许如下图: 问题: 1:微服务之间的调⽤错综复杂,⽤户发送的请求经历那些服务,调⽤链不清楚,没有⼀ 个⾃…

sqlserver==索引解析,执行计划,索引大小

1创建测试表 -- 创建大型表 CREATE TABLE LargeTableWithIndex (ID int IDENTITY(1,1) PRIMARY KEY,IndexedColumn int,NonIndexedColumn nvarchar(255),OtherData nvarchar(255) );2插入测试数据 -- 使用 T-SQL 插入大量数据 DECLARE @i int = 1; WHILE @i <= 100000 -- …

c语言-操作符详解(含优先级与结合性)

文章目录 了解什么是操作数、操作符操作数&#xff1a;操作符 操作符详解&#xff1a;1.算术操作符&#xff1a; 、- 、* 、/ 、%2.移位操作符: << >>3.位操作符: & | ^4. 赋值操作符: 、 、 - 、 * 、 / 、% 、<< 、>> 、& 、| 、^5. 单⽬操…

windows系统玩游戏找不到d3dx9_35.dll缺失的解决方法

分享一个我们在打开游戏或许软件过程中遇到的问题——“由于找不到d3dx9_35.dll,无法继续执行代码”的五个修复方案。这个问题可能会影响到我们的工作和娱乐效率&#xff0c;甚至可能导致工作的延期。因此&#xff0c;我希望通过今天的文章&#xff0c;能够帮助大家更好地解决这…

YOLO目标检测——卫星遥感多类别检测数据集下载分享【含对应voc、coco和yolo三种格式标签】

实际项目应用&#xff1a;卫星遥感目标检测数据集说明&#xff1a;卫星遥感多类别检测数据集&#xff0c;真实场景的高质量图片数据&#xff0c;数据场景丰富&#xff0c;含网球场、棒球场、篮球场、田径场、储罐、车辆、桥、飞机、船等类别标签说明&#xff1a;使用lableimg标…

GB28181学习(十七)——基于jrtplib实现tcp被动和主动发流

前言 GB/T28181-2022实时流的传输方式介绍&#xff1a;https://blog.csdn.net/www_dong/article/details/134255185 基于jrtplib实现tcp被动和主动收流介绍&#xff1a;https://blog.csdn.net/www_dong/article/details/134451387 本文主要介绍下级平台或设备发流功能&#…

【计算机网络学习之路】TCP socket编程

文章目录 前言一. 服务器1. 初始化服务器2. 启动服务器 二. 客户端三. 多进程服务器结束语 前言 本系列文章是计算机网络学习的笔记&#xff0c;欢迎大佬们阅读&#xff0c;纠错&#xff0c;分享相关知识。希望可以与你共同进步。 本篇博客基于UDP socket基础&#xff0c;介绍…

C++ vector 使用类作为模板参数/C++多态展示

C vector 使用类作为模板参数 #include<iostream> #include<string> #include<vector>class vector3D {public:float x,y,z; vector3D(int x_,int y_,int z_):x(x_),y(y_),z(z_){}public:float add(){return (xyz);}};int main(){int *a new int[10];a[0] …

基于原子轨道搜索算法优化概率神经网络PNN的分类预测 - 附代码

基于原子轨道搜索算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于原子轨道搜索算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于原子轨道搜索优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xf…