律师网站建设模板网站源码开发

news/2025/9/22 17:20:15/文章来源:
律师网站建设模板,网站源码开发,衡东网站定制,wordpress 会员登录字符指针变量 在指针的类型中我们知道有一种指针叫做字符指针 它的使用情况如下#xff1a; #includestdio.h int main() {char pa w;char*p1pa;*p1 a;printf(%c\n, *p1);return 0; } 在这段代码当中#xff0c;我们将‘w’字符的地址传到了p…字符指针变量 在指针的类型中我们知道有一种指针叫做字符指针 它的使用情况如下 #includestdio.h int main() {char pa w;char*p1pa;*p1 a;printf(%c\n, *p1);return 0; } 在这段代码当中我们将‘w’字符的地址传到了p1里面而p1就是一个字符指针。 除了上面这种使用方法还有一种关于字符指针变量的使用方法如下 #includestdio.h int main() {char* p1 abced;printf(%s\n, p1);return 0; } 有没有感到很好奇对于这段代码的解释大家有什么想法吗 咱们的第一个反应应该是这个是不是把字符串“abced”放到字符指针p1里面啊但真实情况不是这样的这个是将“abced”中的首字母的地址放到了p1的指针变量当中从而在打印的时候可以通过p1找到字符串首字母的地址从而顺藤摸瓜地打印出整个字符串。 下面呢我们来看一段代码这段代码是一道经典的面试题来自《剑指offer》 #includestdio.h int main() {char arr3[] hello,bit.;char arr4[] hello,bit.;char* p1 hello,bit.;char* p2 hello,bit.;if (arr3 arr4){printf(arr3 and arr4 are the same\n);}elseprintf(arr3 and arr4 are not same\n);if (p1 p2){printf(p1 and p2 are the same\n);}elseprintf(p1 and p2 are not same\n);return 0; } 下面是这段代码运行的结果 这个结果大家想到了吗 其中的原理如下 在数组中用相同的常量字符串初始化数组时系统会开辟不同的内存空间。 而在指针当中两个指针指向的是同一个常量字符串也就是指向同一个开辟下的内存空间。这个就是上面答案的原理所在。 数组指针变量 前面我们讲了指针数组指针数组是一个数组存放的是指针地址而数组指针是一个指针存放的是数组的地址看下面两个 //指针数组和数组指针 //1.int*arr[10] //  //2.int(*arr)[10] 大家可以看看这两个哪个是指针数组哪个是数组指针。 很明显第一个是指针数组数组名是arr数组中存放有10个元素每个元素是int*类型 然后第二个是一个数组指针根据优先级考虑在这个当中首先arr应该与*结合构成一个指针然后指向的是一个10个元素的数组数组中的每个元素都是int类型 数组指针变量的初始化 数组指针是一个指针存放的应该是数组的地址那我们怎么可以得到数组的地址呢arr通过这个便可以得到数组的地址 #includestdio.h int main() {int arr[10] { 0 };int(*pte)[10] arr;return 0; } 从这个当中我们可以看到arr和pte的地址是相同的二者指向了同一块内存空间这个就是数组指针变量的初始化。 二维数组传参的本质 有了前面的数组指针变量的基础我们就可以好好地了解一下二维数组传参的内容之前我们写过二维数组传参的内容请看下面的代码   #includestdio.h void print(int arr[3][4], int r, int j) {for (int i 0; i r; i){for (int h 0; h j; h){printf(%d , arr[i][h]);}printf(\n);}} int main() {int arr[3][4] { {1,2,3,4},{2,3,4,5},{3,4,5,6} };print(arr, 3, 4);return 0; } 我们在之前的代码当中形参是数组形式实参也是数组的形式除了这个写法我们还有其他的写法吗 我们再来看二维数组二维数组其实可以看成是每个元素都是一维数组的数组然后数组名是数组首元素的地址也就是说实参的第一个参数的意思是二维数组第一行的四个元素的地址所以我们可以在形参部分写成这样 #includestdio.h void print(int (*ptr)[4], int r, int j) {for (int i 0; i r; i){for (int h 0; h j; h){printf(%d , *(*(ptri)h));}printf(\n);}} int main() {int arr[3][4] { {1,2,3,4},{2,3,4,5},{3,4,5,6} };print(arr, 3, 4);return 0; } 在这里我们在详细讲一个**ptrih首先先看最里面的那个括号ptr是数组首元素的地址ptri代表着二维数组的第几行的地址然后再加*找到第几行的元素也就是arr[i]然后用arr[i]j代表的是第i行第j列的地址然后在使用解引用符就可以找到该地址所代表的元素然后打印出来就是数组。 数组名是数组首元素的地址 数组名是数组的地址 函数名是函数的地址 函数名也是函数的地址 二维数组传参形参可以形成数组形式也可以写成指针形式。 函数指针变量 通过前面对于指针变量的理解我们大概可以知道函数指针变量应该是一个指针变量指向的应该是函数的地址那么问题来了函数有地址吗让我们来看一下 #includestdio.h int main() {printf(printf %p\n, printf);return 0; } 从上面的结果我们可以看到函数是有地址的函数名就是函数的地址那我们也可以通过函数名来获得函数的地址那我们也可以通过函数地址的调用实现对于函数的调用。 如果我们将函数变量的地址存放起来就可以创建函数指针了函数指针其实和数组指针是极其相似的。 void test() {printf(hehe); } void (*ptr1)() test; void(*ptr2)() test;int Add(int x, int y) {return x y; } int (*ptr3)(int, int) Add; int (*ptr4)(int x, int y) Add;//加不加 x,y都是可以的 函数指针类型分析 函数指针变量的使用 通过函数指针调用指针所指向的函数 #includestdio.h int Add(int x,int y) {return x y; } int main() {int (*ptr)(int, int) Add;printf(%d\n, (*ptr)(3, 4));printf(%d\n, ptr(3, 4));return 0; }两段有趣的代码 接下来我们来看两段出自《C陷阱和缺陷》这本书中的代码 (*(void(*)())0)()  //第一段 //(*(void(*)())0)() /*在这段代码当中 * 第一步void(*)()这个是函数指针的类型 * 第二步(void(*)())0----这个是对0的强制类型转换使0转换成函数指针类型 * 第三步*(void(*)())0)()----是一个指针 */ 第二段 第二段 void (*signal(int, void(*)(int)))(int); 第一步signal是一个函数名 第二步函数名后面的(int, void(*)(int))是函数参数 第三步整个又是一个函数指针参数类型是int typedef关键字 typedef是关键字没在C语言当中可以起到重命名的作用 typedef int* unit; typedef void(*ptr)(int); typedef void(*deff)(); 函数指针数组 我们之前学了指针数组同理函数指针数组是将函数指针放入数组当中那么这个该怎么实现呢 //函数指针数组 void (*)()ptr[10] ;

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

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

相关文章

引导型网站设计个人主题网站做的步骤

文章目录 前言一、什么是Windows PE格式中的导入表?二、解析导入表并显示1.导入表的结构2.解析导入表3.显示导入表 前言 通过分析和解析Windows PE格式,并使用qt进行图形化显示 一、什么是Windows PE格式中的导入表? 在Windows中&#xff0…

php做网站怎么布局wordpress node.js

概述本文大部分整理自《Java并发编程的艺术》,温故而知新,加深对基础的理解程度。指令序列的重排序我们在编写代码的时候,通常自上而下编写,那么希望执行的顺序,理论上也是逐步串行执行,但是为了提高性能&a…

个人网站做商城网站宽度设计

作者 | 磊哥来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)Nacos 是 Spring Cloud Alibaba 中一个重要的组成部分,它提供了两个重要的功能:服务注册与发现和统一…

国内高清视频素材网站推荐企业网站首页开发

题目 水题系列。给出一个图,求他的连通分量。 科普:连通分量就是一个图中可以连接最多点的子图(可以是它本身)的点数量。 输入 5(点的数量) 1 2(表示1和2连通) 3 4 2 3 0 0(表示停止输入) 输出 4 解题思路 Er…这道题没…

网站建设海报设计网店装修

Python 基本操作 (赋值、分支及循环语句、使用 import 导入库); Python 的 With 语句 ; NumPy ,Python 下常用的科学计算库。TensorFlow 与之结合紧密; 向量 和 矩阵 运算(矩阵的加减法、矩阵…

004_元组操作

1、定义元组 my_cars = "红旗", "五菱宏光", "雅迪" # 元组是用逗号识别的 print(my_cars) cars = ("奔驰", "宝马", "奥迪") print(cars)2、元组不可修…

个人作业-第二次软件工程作业

软件工程第二次作业课程 软件工程作业要求 个人编程作业的目标 实现一个论文查重程序,规范软件开发流程,熟悉Github进行源代码管理和学习软件测试GitHub仓库 https://github.com/chendongkai2004/3123004433一、PSP表…

代码流水线

取址,分析,执行 取址 根据PC内容访问主存储器,取出一条指令送到IR中 分析 对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的有效地址EA,并从有效地址EA中取出操作数 执行 根据操作码字段,…

自学网站有哪些自学网关键词优化公司排名

前言 当你的应用程序需要一个快速、可扩展的内存数据库时,Redis是一个非常流行的选择。通过将Redis与Spring Boot集成,你可以轻松地利用Redis的功能,例如缓存、会话存储和消息队列等,从而提升应用程序的性能和可伸缩性。 在本教…

洛谷题单指南-进阶数论-P1516 青蛙的约会

原题链接:https://www.luogu.com.cn/problem/P1516 题意解读:长L的环形数轴,初始A在x坐标、一次跳m米,B在y坐标、一次跳n米,问最少跳几次AB相遇。 解题思路: 1、欧几里得算法 欧几里得算法(Euclidean Algorithm…

electron中的几个概念

这里记录一下,学习用┌─────────────────────────────────────────┐│ 主进程 (Main Process) ││ - main.js ││ …

仿网站wordpress 整合ckplayer

前言 JSON 平时大家都会用到,都不陌生,今天就一起来实现一个 JSON 的可视化工具。 大概长成下面的样子: 树展示 相比于现有的一些 JSON 格式化工具,我们今天制作的这个小工具会把 JSON 转为树去表示。其中: 橙色标…

电子商务网站建设阶段连云港网站建设推广

MySQL:Explain执行计划 使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。 认识explain EXPLAIN SELECT * FROM user_info i LEFT JOIN user_grade g on i.id …

网站推广塔山双喜wordpress评论qq

计算机是现代社会中不可或缺的工具,而CPU(中央处理器)则是计算机的核心组件。CPU负责执行指令和控制计算机的各种操作,它的性能直接影响着计算机的速度和效率。 1. CPU的基本结构 CPU通常由以下几个主要组成部分构成&#xff1a…

外贸网站推广策划wordpress墨客吧

一、什么是Hooks函数? 想象一下,你在做饭,有一些调料你经常会用到,比如盐、酱油和辣椒。每次做饭时,你都会从柜子里拿出这些调料。如果你每次用完都把它们随便放在厨房的某个角落,下次做饭时就可能找不到它…

学校网站怎么做的好坏浙江网架公司

v-viewer简介 v-viewer 是一个 Vue 组件&#xff0c;用于显示图片和其他媒体内容的全屏查看器。它基于 Viewer.js&#xff0c;一个强大的图片查看库。 以下是一个基本的使用示例&#xff1a; <template><div v-viewer><img src"image1.jpg" />&…

做维修家具广告在哪个网站好北京市网站维护公司

初识国际化和ResourceBundle这个类主要用来解决国际化和本地化问题。国际化和本地化可不是两个概念&#xff0c;两者都是一起出现的。可以说&#xff0c;国际化的目的就是为了实现本地化&#xff0c;详细的介绍可以看本文的最后。比如对于“取消”&#xff0c;中文中我们使用“…

传统网站有没有建设必要性长春搜索排名提升

首发公号&#xff1a;Rand_cs 共享内核空间 我们常说&#xff0c;每个进程都有自己的虚拟地址空间&#xff0c;但其中内核部分是共享的。 这就有个问题&#xff0c;如何共享的&#xff1f; 系统启动时创建了一张内核页表&#xff0c;里面记录着内核地址空间与物理地址空间的…

网站能获取访问者关键词搜索引擎又称为

1.简介 RapidJSON 是一个 C 的 JSON 解析库&#xff0c;由腾讯开源。 支持 SAX 和 DOM 风格的 API&#xff0c;并且可以解析、生成和查询 JSON 数据。RapidJSON 快。它的性能可与strlen() 相比。可支持 SSE2/SSE4.2 加速。RapidJSON 独立。它不依赖于 BOOST 等外部库。它甚至…

详细介绍:PHP基础-数据类型(第九天)

详细介绍:PHP基础-数据类型(第九天)2025-09-22 17:07 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !…