C语言---指针进阶
1.字符指针
int main()
{char str1[] = "hello world";char str2[] = "hello world";const char* str3 = "hello world.";const char* str4 = "hello world.";if (str3 == str4){//常量字符串在内存里面是无法修改的,所以没必要存//2分,因为都无法改变printf("same\n");}else{printf("not same\n");}return 0;
}
(1)这里面的str3和str4就是字符指针,简而言之,字符指针就是存放字符的指针;
(2)字符指针变量指向的是首个字符的地址;
(3)上面的程序打印的结果就是same,因为加上const之后就是常量字符串,无法进行修改,所
以在内存里面不用存2份,因为反正也无法改变,所以他们的地址是相同的;
(4)str1和str2地址是不相同的,因为str1和str2是两个不同的数组,内存里面会分别给2个数组开
辟空间,所以他们的地址是一定不相同的;
2.指针数组

(1)这个先定义了3个数组,分别是arr1[],arr2[],arr3[],
(2)整形数组就是全是整数的数组,字符数组就是全是字符的数组,指针数组毫无疑问就是存放指针的数组,arr4就是一个指针数组,里面放着定义的三个数组的地址;
(3)这个是使用指针数组模拟实现二维数组,通过arr4[i]找到对应的数组的地址,
arr4[i][j]就是找到数组里面对应的元素的地址;如下图所示

3.数组指针
int (*p) arr4就是数组指针;
(1)数组名是数组首个元素的地址,但是有2个例外
------->一个是&(数组名),这里的数组名是整个数组,求的是这个数组的地址;
-------->另外一个是sizeof(数组名),这里的数组名是整个数组,求的是数组的大小,单位字节;
(2)通过一个例子带你走进数组指针

arr+1就是跳过一个元素,所以相差4C-48=4个字节;
&arr+1就是跳过一个数组,所以相差95C-948=20个字节;
虽然数组的地址和首个元素的地址指向的位置一样,但是他们的类型不一样;
我们引入数组指针就是为了存放数组的地址,数组指针是这样表示的;

4.数组指针的使用
(1)二维数组的传参实际上传递的是地址
void Print(int(*p)[5], int r, int c)
{int i = 0;int j = 0;for (i = 0; i < 3; i++){for (j = 0; j < 5; j++){printf("%d ", *(*(p + i) + j));}printf("\n");}
}
int main()
{int arr[3][5] = { 1,2,3,4,5,2,3,4,5,6,3,4,5,6,7 };Print(arr, 3, 5);return 0;
}
我们可以把一个二维数组理解成为3个一维数组组合而成的,第⼀⾏的⼀维数组的类型就是 int [5] ,所以第⼀⾏的地址的类 型就是数组指针类型 int(*)[5];
传参传递的是一维数组的地址;
由此可见:⼆维数组传参,形参的部分可以写成数组,也可以写成指针形式。
相关文章:
C语言---指针进阶
1.字符指针 int main() {char str1[] "hello world";char str2[] "hello world";const char* str3 "hello world.";const char* str4 "hello world.";if (str3 str4){//常量字符串在内存里面是无法修改的,所以没必要…...
QT-通信编码格式问题
这里写目录标题 一、项目场景1.QT客户端与服务端通信时,转化步骤如下:2.原数据示例3.转化后数据 二、问题描述1.采用Soap协议2.采用HTTP协议 三、原因分析四、解决方案 一、项目场景 1.QT客户端与服务端通信时,转化步骤如下: 1&…...
一文了解Web3.0真实社交先驱ERA
Web2时代,少数科技巨头垄断了全球近60亿人口的网络社交数据,并用之为自己牟利,用户无法掌控个人数据,打破该局面逐渐成为共识,于是,不少人看到了Web3社交赛道蕴含的巨大机遇,标榜着去中心化和抗…...
微前端(qiankun)vue3+vite
目录 一、什么是微前端 二、主应用接入 qiankun 1.按照qiankun插件 2.注册微应用引用 3.挂载容器 三、微应用接入 qiankun 1.vite.config.ts 2.main.ts ps:手动加载微应用方式 ps:为什么不用 iframe 一、什么是微前端 微前端是一种多个团队通过独…...
根据Ruoyi做二开
Ruoyi二开 前言菜单代码生成新建微服务网关添加微服务的路由 vue页面和对应的js文件js中方法的url和controller中方法的url总结 前言 之前写过一篇文章,若依微服务版本搭建,超详细,就介绍了怎么搭建若依微服务版本,我们使用若依就…...
DockerFile的应用
DockerFile的应用 一、介绍1 构建的三步骤2 构建的过程 二、常用命令三、DockerFile案例1 创建DockerFile文件2 使用DockerFile文件构建镜像3 启动容器并验证 四 DockerFile添加数据卷 一、介绍 DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成…...
爬虫入门一
文章目录 一、什么是爬虫?二、爬虫基本流程三、requests模块介绍四、requests模块发送Get请求五、Get请求携带参数六、携带请求头七、发送post请求八、携带cookie方式一:放在请求头中方式二:放在cookie参数中 九、post请求携带参数十、模拟登…...
2024-02-16 web3-区块链-keypass记录
摘要: 2024-02-16 web3-区块链-keypass记录 文档: Introduction - Keypass Docs What is KEYPASS? - Keypass Docs What is KEYPASS? KeyPass Wallet is a new smart contract wallet that provides a secure and customizable registration…...
使用 JMimeMagic 在 Java 中识别文件类型
在 Java 中,我们可以使用 JMimeMagic 库来识别文件类型,尤其是在需要准确区分文件类型时。下面是一个简单的使用 JMimeMagic 的示例代码。 添加依赖 首先,在你的项目中添加 JMimeMagic 依赖。你可以在 Maven 项目中的 pom.xml 文件中加入以…...
yolov8源码解读Detect层
yolov8源码解读Detect层 Detect层解读网络各层解读及detect层后的处理 关于网络的backbone,head,以及detect层后处理,可以参考文章结尾博主的文章。 Detect层解读 先贴一下全部代码,下面一一解读。 class Detect(nn.Module):"""YOLOv8 …...
(AtCoder Beginner Contest 341)(A - D)
比赛地址 : Tasks - Toyota Programming Contest 2024#2(AtCoder Beginner Contest 341) A . Print 341 模拟就好了 , 先放一个 1 , 然后放 n 个 01 ; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout…...
python Flask与微信小程序 统计管理
common/models/stat/StatDailyMember.py DROP TABLE IF EXISTS stat_daily_member;CREATE TABLE stat_daily_member (id int(11) unsigned NOT NULL AUTO_INCREMENT,date date NOT NULL COMMENT 日期,member_id int(11) NOT NULL DEFAULT 0 COMMENT 会员id,total_shared_count …...
光伏企业助力乡村振兴
光伏是一种利用太阳能生产电能的发电技术,属于可再生能源。近年来我国的光伏企业发展迅速,已经称霸全球,同时也为乡村振兴贡献了力量。 一、光伏企业助力乡村 1.推动农业发展 光伏发电和农业种植、畜牧、渔业、水产等有机结合,…...
root MUSIC 算法补充说明
root MUSIC 算法补充说明 多项式求根root MUSIC 算法原理如何从 2 M − 2 2M-2 2M−2 个根中确定 K K K 个根从复数域上观察 2 M − 2 2M-2 2M−2 个根的分布 这篇笔记是上一篇关于 root MUSIC 笔记的补充。 多项式求根 要理解 root MUSIC 算法,需要理解多项式求…...
关于Django的中间件使用说明。
目录 1.中间件2. 为什么要中间件?3. 具体使用中间件3.1 中间件所在的位置:在django的settings.py里面的MIDDLEWARE。3.2 中间件的创建3.3 中间件的使用 4. 展示成果 1.中间件 中间件的大概解释:在浏览器在请求服务器的时候,首先要…...
Chapter 8 - 15. Congestion Management in TCP Storage Networks
User Actions After learning the states of queue utilization, the following are the actions that admins and operators can take while using TCP transport for storage traffic. 了解了队列利用率的状态后,管理员和操作员在使用 TCP 传输存储流量时可以采取以下措施。…...
前端技巧之svg精灵图svg-sprite-loader
首先说明精灵图的必要性,其可以让我们只需要向服务器请求一次图片资源,就能加载很多图片,即能够减轻http请求造成的服务器压力。 然后这里要说明的是这个插件是webpack上面的,所以在vue2中比较好用,如果在vue3中&…...
IO线程-day2
1> 使用fread和fwrite完成两个文件的拷贝 程序: #define MAXSIZE 1024 #include<myhead.h>int main(int argc, char const *argv[]) {FILE *srcfpNULL;FILE *destfpNULL;if(!(srcfpfopen("pm.bmp","r")))PRINT_ERR("");if…...
Spring Boot 笔记 024 登录页面
1.1 登录接口 //导入request.js请求工具 import request from /utils/request.js//提供调用注册接口的函数 export const userRegisterService (registerData)>{//借助于UrlSearchParams完成传递const params new URLSearchParams()for(let key in registerData){params.a…...
09_Java集合
一、Java集合框架概述 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用Array存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态…...
告别“一本正经的胡说八道”:神经符号 AI 正在定义下一代智能
告别“一本正经的胡说八道”:神经符号 AI 正在定义下一代智能 作为一名软件架构师,我们深知开发中的“真理”:代码必须是逻辑严密的,每一行逻辑都应有据可查。然而,当我们将现在的 LLM(大语言模型ÿ…...
机器学习数据集伦理实践:从批判性视角审视数据生命周期与权力结构
1. 项目概述:为什么我们需要一本批判性的机器学习数据集实践指南?如果你正在构建一个图像分类模型来识别鸟类,或者利用社交媒体数据研究哥斯达黎加的家庭,又或者你是一位艺术家,正在使用像DALL-E 2这样的模型进行创作&…...
从0到1构建DeepSeek企业级隔离体系:4类租户场景×3种SLA等级×2套审计回溯机制
更多请点击: https://intelliparadigm.com 第一章:DeepSeek资源隔离方案的总体架构设计 DeepSeek资源隔离方案以“多租户安全边界 动态资源契约”为核心设计理念,构建覆盖计算、内存、存储与网络四维资源的统一隔离层。该架构采用分层解耦结…...
艾尔登法环存档救星:5分钟学会角色迁移,告别数百小时进度丢失
艾尔登法环存档救星:5分钟学会角色迁移,告别数百小时进度丢失 【免费下载链接】EldenRingSaveCopier 项目地址: https://gitcode.com/gh_mirrors/el/EldenRingSaveCopier 艾尔登法环存档管理器是你守护游戏进度的终极解决方案。想象一下…...
企业单点登录(SSO)迁移DeepSeek的最后72小时:金融级审计日志、国密SM2签名、等保2.0合规 checklist
更多请点击: https://codechina.net 第一章:企业单点登录(SSO)迁移DeepSeek的最后72小时:金融级审计日志、国密SM2签名、等保2.0合规 checklist 在核心交易系统上线前72小时,某全国性股份制银行完成SSO服务…...
macOS百度网盘高速下载破解:3步实现SVIP级别下载体验
macOS百度网盘高速下载破解:3步实现SVIP级别下载体验 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 百度网盘作为国内最主流的云存储服务&…...
机器学习与重要性采样融合:高效估计黑盒模型尾部风险
1. 项目概述在金融工程和风险管理的核心地带,我们常常需要面对一个棘手的现实:许多关键的风险模型,例如保险公司用于评估极端赔付的内部模型,或者银行用于压力测试的复杂资产定价引擎,本质上都是“黑盒”。这些模型接受…...
Zotero Duplicates Merger:终极文献去重解决方案,告别重复文献困扰
Zotero Duplicates Merger:终极文献去重解决方案,告别重复文献困扰 【免费下载链接】ZoteroDuplicatesMerger A zotero plugin to automatically merge duplicate items 项目地址: https://gitcode.com/gh_mirrors/zo/ZoteroDuplicatesMerger 你是…...
BiliDownloader终极教程:如何轻松下载B站视频的完整指南
BiliDownloader终极教程:如何轻松下载B站视频的完整指南 【免费下载链接】BiliDownloader BiliDownloader是一款界面精简,操作简单且高速下载的b站下载器 项目地址: https://gitcode.com/gh_mirrors/bi/BiliDownloader 想要永久保存B站上的精彩视…...
高斯混合期望传播算法:破解MIMO检测中离散先验近似难题
1. 项目概述:当MIMO检测遇上贝叶斯机器学习在无线通信领域,多输入多输出(MIMO)技术早已不是什么新鲜词。它通过在收发两端部署多根天线,让数据在空间维度上并行传输,从而在不增加带宽和发射功率的前提下&am…...
