指针相关知识(进阶)

前面的入门中已经介绍了指针的基础知识,接下来,让我们继续学习吧!

一. 字符指针变量

char*

一般形式

int main()
{char n = 'w';char* pa = &n;*pa = 'w';return 0;
}

这并不是把字符串hello world放在n中,而是把第一个字符的地址放在n中

int main()
{char str1[] = "hello world";char str2[] = "hello world";const char* str3 = "hello world";const char* str4 = "hello world";if (str1 == str2)printf("str1 and str2 are same\n");elseprintf("str1 and str2 are not same\n");if (str3 == str4)printf("str3 and str4 are same\n");elseprintf("str3 and str4 are not same\n");return 0;
}

这是因为str1和str2是数组,因此表示的是首元素的地址,这两个不同。

str3和str4是常量字符串,内容相同的常量字符串只会保存一份

二.数组指针变量

int * n;

float * a;

int *p1[10];p1是数组,10个元素,每个元素的类型是int*(指针数组

int (*p2)[10];p2是指针‘指针指向的是数组,10个元素,每个元素的类型是int(数组指针

三.二维数组传参的本质

void test(int(*p)[5], int r, int c)
{int i = 0;int j = 0;for (j = 0; j < c; 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} };test(arr, 3, 5);return 0;
}

二维数组传参,形参可以是数组,也可以是指针

void test(int(*p)[5], int r, int c)
void test(int a[3][5], int r, int c)

二维数组是元素是一维数组的数组

四.函数指针变量

void test()
{printf("hehe\n");
}void (*pf1)() = &test;
void (*pf2)() = test;int Add(int x, int y)
{return x + y;
}int(*pf3)(int, int) = Add;
int(*pf3)(int x, int y) = &Add;
int(*pf3)(int x, int y)

int   pf3指向函数的返回类型

*pf3     函数指针变量名

int(*)(int x, int y)    pf3函数指针变量的类型

五.函数指针数组

int (*parr[3])();

函数指针的类型是int (*)();

六.回调函数

回调函数是一个通过函数指针调用的函数

也就是说,将代码中冗余的部分作为模板,然后将它放在一个函数中,在下面如果有用到的地方就调用,多次调用,只是有小部分的不同即可

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

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

相关文章

开辟“护眼绿洲”,荣耀何以为师?

文 | 智能相对论 作者 | 佘凯文 俗话说&#xff0c;眼睛是心灵的窗户&#xff0c;可如今&#xff0c;人们对于这扇“窗户”的保护&#xff0c;似乎越来越不重视。 据人民日报今年发布的调查显示&#xff0c;中国眼病患病人数2.1亿&#xff0c;近视患者人数多达6亿&#xff0…

干货分享|数据驱动消费者价值提升实践

数据如何驱动消费者价值提升&#xff1f;围绕该话题&#xff0c;神策数据品牌零售事业部总经理刘洋从运营挑战、价值主张、解决方案三个方面做了完整分享。 一、数据化运营面临的挑战 1、数据与全域业务打通。品牌数据量庞大&#xff0c;种类较多&#xff0c;独立存在&#xff…

C++使用UDP

C使用UDP 对C使用UDP做了简单封装&#xff0c;可直接运行 头文件udp.h #pragma once #include <Winsock.h> #pragma comment(lib,"WS2_32.lib")#define LOCAL_IP_ADDR INADDR_ANY //当前应用程序接收的IP地址 #define LOCAL_PORT 9527 …

SOEM主站开发篇(5):CMakeLists.txt文件解析

0 工具准备 1.SOEM-1.4.0源码(官网:http://openethercatsociety.github.io/) 2.cmake(版本不得低于3.9,本文为3.9.2) 3.Ubuntu 16.04(用于编译生成Linux开发板的可执行文件) 4.CMake V3.9.6参考手册(官网:https://cmake.org/cmake/help/v3.9/manual/cmake-commands.…

上手第一关,手把手教你安装kafka与可视化工具kafka-eagle

上手第一关&#xff0c;手把手教你安装kafka与可视化工具kafka-eagle 一、环境与下载二、安装三、启动1. 启动ZK2. 启动Kafka 四、可视化工具 EFAK(kafka-eagle)1. kafka开启JMX2. 下载及配置3. 启动故障及解决① 错误信息 C:\Program is not recognized as an internal or ext…

Vue3:ref函数和reactive函数和setup函数

ref基本用法 一、ref函数基本用法&#xff1a; 作用&#xff1a;定义一个响应式的数据 语法&#xff1a;const xxx ref(initValue),创建一个包含响应式数据的引用对象&#xff08;reference对象简称ref对象&#xff09; 备注&#xff1a; 1. 基本数据类型&#xff1a;响应式依…

灾备建设中,虚拟机异构平台恢复技术原理与应用

在如今混合云环境下&#xff0c;实现异构虚拟化恢复与迁移面临着极大挑战。不同于市面上有代理的恢复方案&#xff0c;虚拟机无代理跨平台恢复解决方案利用自主研发的转换引擎&#xff08;VMCE&#xff09;对已备份虚拟机文件进行高效的存储格式转换和配置信息转换&#xff0c;…

vue3的组件传值

在Vue3中&#xff0c;组件传值可以通过props属性实现。 首先&#xff0c;在父组件中定义props属性&#xff0c;然后将数据传递给子组件。 // Parent.vue <template><Child :message"message" /> </template><script> import Child from ./…

运营微信视频号要注意哪些问题?

视频号运营的5个雷点你别踩! 今天和你说的视频号运营的5大雷点 你踩过没? 这5点虽然和野花似的 但也不能踩哦 雷点1:违规行为 雷点2:抄袭剽窃 雷点3:没有明确目标受众 雷点4:短视频质量过低 雷点5:缺少社交互动 相信不管是视频号还是别的平台都通用哈

docker consul容器自动与注册

微服务&#xff08;容器&#xff09;注册与发现&#xff1a;是一种分布式的管理系统&#xff0c;定位服务的方法。 在传统架构当中&#xff0c;应用程序之间直连到已知服务&#xff0c;设备提供的网络&#xff1a;IP地址&#xff0c;基于tcp/ip&#xff0c;端口&#x…

flume:Ncat: Connection refused.

一&#xff1a;nc -lk 44444 和 nc localhost 44444区别 nc -lk 44444 和 nc localhost 44444 是使用 nc 命令进行网络通信时的两种不同方式。 1. nc -lk 44444&#xff1a; - 这个命令表示在本地监听指定端口&#xff08;44444&#xff09;并接受传入的连接。 - -l 选项…

Google 论坛和 QA 结构化数据更新重点关注 Authorship

谷歌更新了论坛结构化数据和问答结构化数据的文档&#xff0c;明确了这两种结构化数据与作者身份相关的新要求。 就论坛结构化数据而言&#xff0c;对 InteractionCounter schema.org 数据类型进行了说明&#xff0c;还为作者类型增加了一个新的推荐属性&#xff0c;这两个属性…

AutoSAR(基础入门篇)1.3-AutoSAR的概述

目录 一、到底什么是AutoSAR 1、大白话来讲 2、架构上来讲 应用软件层(APPL) 实时运行环境&#xff08;RTE&#xff09; 基础软件层(BSW) 3、工具链上来讲 二、AutoSAR的目标 一、到底什么是AutoSAR 1、大白话来讲 AUTOSAR 就是AUTomotive Open System ARchitecture的…

nginx 1.24.0 安装nginx最新稳定版

1.官网&#xff1a; nginx: download 2. 选择稳定版&#xff1a; 3. 可以下载&#xff0c;然后上传服务器&#xff0c;也可以wget获取&#xff1a; cd /home wget https://nginx.p2hp.com/download/nginx-1.24.0.tar.gz 4. 放入/home 下。并解压缩&#xff0c;重命名nginx;…

【教学类-06-18】20231216 (按“列”正序题)X-Y之间“加法题+题”(1页最多0-13。不考虑空格补全)

作品展示&#xff1a;按列排序&#xff0c;从小到大正序&#xff08;有空格&#xff09; 背景需求&#xff1a; 55格模板&#xff0c;很多幼儿都是按照“列”的方式&#xff0c;从上到下&#xff0c;从左向右完成题目的。 视觉上&#xff0c;两列之间间距大&#xff08;给孩子…

DevOps|研发提效-敏捷开发之任务看板

上篇文章中&#xff0c;我讲了敏捷第一步-每日站立会&#xff0c;讲了我们平时是怎么开站立会的&#xff0c;其实15-30分钟就够了&#xff0c;绝对不是时间长得让你想拄拐那种。本文我们开始讲敏捷开发中的看板。没有看板之前&#xff0c;我们真的是在白板上画泳道&#xff0c;…

技术面试斗智斗勇II

上回书说到&#xff0c;面试3年经验的java开发遇到了很多培训班的包装简历。这次说说初级的识别策略。 问问他之前工作的公司是什么。即使是假的&#xff0c;候选人也能回答&#xff0c;但是他们往往说的是全称&#xff0c;比如 北京XXX科技有限公司。很显然&#xff0c;如果你…

【洛谷】自动修正

自动修正 题目链接 题意 即将原字符串中的所有小写字母转化为大写字母。 思路 输入所需值后&#xff0c;在for循环中运用acll码来进行大小写转化&#xff0c;最后输出即可 坑点 注意acll码转换大小写时不要弄反&#xff0c;不然会使大写字母转化成小写 实现步骤 同思路 代码 …

美团赚钱更难了,Q3核心业务利润率下降2%,市值一年缩水近6000亿

从“买菜”卷向“超市”&#xff0c;成立5年的美团买菜更名为“小象超市”。 就在更名公告发布的前一天&#xff0c;美团公布了2023年三季报&#xff0c;尽管三季度营收净利双增长&#xff0c;但其股价却呈相反趋势。 三季报发布次日(11月29日)&#xff0c;美团港股股价单日跌…

MIT6.5840-2023-Lab2C: Raft-Persistence

前置知识 见上一篇 Lab2A。 实验内容 实现 RAFT&#xff0c;分为四个 part&#xff1a;leader election、log、persistence、log compaction。 实验环境 OS&#xff1a;WSL-Ubuntu-18.04 golang&#xff1a;go1.17.6 linux/amd64 Part 2C: persistence 大部分的bug都与这…