C++ 彻底搞懂指针(终章)

一是指针基础、NULL指针、void指针、指针初始化

二是指针运算、指针运算表达式分析

三是数组和指针、指针数组、二维数组指针

四是结构体指针、函数指针

本文提纲如下:

    •    命令行参数

    •    指针类型转换

    •    复杂指针分析

1. 命令行参数

main函数也可以传入数据,如下:

 

int main(int argc, char *argv[])

int main(int argc, char **argv)

以上两种写法都可以,使用命令行传参时,传入的数据以字符串的形式存在,多份数据之间以空格分隔,即,用户输入的多份数据在程序中表现为多个字符串。

argc表示传递的字符串的数目,argv是一个指针数组,每个指针指向一个字符串,或者也可以将argv写成二级指针形式。

这两个参数通常取名为 argc 和 argv,也可以取其他的名字,如果你喜欢的话。

举个例子,如下:

 

#include <stdio.h>

 

int main(int argc, char **argv)

{

    printf("Receive &d parameters\n", argc);

    for(int i = 0; i < argc; i++)

    {

        printf("%d %s\n", i, argv[i]);

    }

    return 0;

}

运行结果如下:

 

PS F:\19_learning\1_C_Programming> ./argc.exe liang chen

Receive 3 parameters

0 F:\19_learning\1_C_Programming\argc.exe

1 liang

2 chen

PS F:\19_learning\1_C_Programming>

从运行结果可以看出,包括程序名以及它后面的字符串都会被程序接收,程序名就是第一个参数。

2. 指针类型转换

在之前所举的例子中,赋值号左边是一个指针变量,赋值号右边是一个指针表达式,指针变量和指针表达式的类型应当是一致的,如果不一致就要进行强制类型转换。

对于指针类型转换需要明白的是:类似于普通变量之间的强制类型转换,普通变量进行强制类型转换时,只是改变了对内存中二进制的解读方式,指针的强制类型转换改变了访问内存的方式

举几个例子:

2.1 示例 1

 

typedef 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端面试题5(前端常见的加密方式)

前端常见的加密方式 在前端进行数据加密主要是为了保护用户的隐私和提升数据传输的安全性。前端数据加密可以采用多种方法&#xff0c;以下是一些常见的加密技术和方法&#xff1a; 1. HTTPS 虽然不是直接的前端加密技术&#xff0c;但HTTPS是保障前端与后端数据传输安全的基…

【BUUCTF-PWN】12-get_started_3dsctf_2016

32位&#xff0c;开启了NX保护 执行效果&#xff1a; main函数&#xff1a; 其中gets()函数存在栈溢出&#xff0c;溢出距离为0x38&#xff0c;这里是使用的esp寻址&#xff0c;属于外平栈&#xff0c;不需要覆盖ebp的四个字节。而之前做的题一般都是ebp寻址&#xff0c;…

Golang | Leetcode Golang题解之第216题组合总和III

题目&#xff1a; 题解&#xff1a; func combinationSum3(k int, n int) (ans [][]int) {var temp []intvar dfs func(cur, rest int)dfs func(cur, rest int) {// 找到一个答案if len(temp) k && rest 0 {ans append(ans, append([]int(nil), temp...))return}/…

【Python机器学习】模型评估与改进——二分类指标

目录 1、错误类型 2、不平衡数据集 3、混淆矩阵 与精度的关系。 准确率、召回率与f-分数 分类报告 4、考虑不确定性 5、准确率-召回率曲线 6、受试者工作特征&#xff08;ROC&#xff09;与AUC 二分类可能是实践中最常见的机器学习应用&#xff0c;也是概念最简单的应…

3.Charles抓包工具学习

目录 1.使用Charles抓取https2.将抓包导入到postman3.抓包导入到JMeter4.抓小程序的包-只能电脑4.断点设置-前置断点-修改请求数据5.断点设置-后置断点-修改服务器响应6.Mock设置7.模拟弱网8.如何抓取移动端APP9.简单的压力测试 1.使用Charles抓取https 2.将抓包导入到postman …

开始尝试从0写一个项目--后端(一)

创建文件的目录结构 利用这个界面创建 序号 名称 说明 1 SEMS maven父工程&#xff0c;统一管理依赖版本&#xff0c;聚合其他子模块 2 sems-common 子模块&#xff0c;存放公共类&#xff0c;例如&#xff1a;工具类、常量类、异常类等 3 sems-pojo 子模块&#x…

硅纪元视角 | AI纳米机器人突破癌症治疗,精准打击肿瘤细胞

在数字化浪潮的推动下&#xff0c;人工智能&#xff08;AI&#xff09;正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展&#xff0c;捕捉行业动态&#xff1b;提供深入的新闻解读&#xff0c;助您洞悉技术背后的逻辑&#xff1b;汇聚行业专家的见解&#xff0c;…

打卡第2天----数组双指针,滑动窗口

今天是参与训练营第二天&#xff0c;这几道题我都看懂了&#xff0c;自己也能写出来了&#xff0c;实现思路很重要&#xff0c;万事开头难&#xff0c;希望我可以坚持下去。希望最后的结果是量变带来质变。 一、理解双指针思想 leetcode编号&#xff1a;977 不止是在卡尔这里…

深入探讨JavaScript中的队列,结合leetcode全面解读

前言 队列作为一种基本的数据结构&#xff0c;为解决许多实际问题提供了有效的组织和处理方式&#xff0c;对于提高系统的稳定性、可靠性和效率具有重要作用&#xff0c;所以理解队列是很重要的。 本文深入探讨JavaScript中的队列这种数据结构,结合leetcode题目讲解 题目直达…

接口测试工具Postman

Postman Postman介绍 开发API后&#xff0c;用于API测试的工具。在我们平时开发中&#xff0c;特别是需要与接口打交道时&#xff0c;无论是写接口还是用接口&#xff0c;拿到接口后肯定都得提前测试一下。在开发APP接口的过程中&#xff0c;一般接口写完之后&#xff0c;后端…

78110A雷达信号模拟软件

78110A雷达信号模拟软件 78110A雷达信号模拟软件(简称雷达信号模拟软件)主要用于模拟产生雷达发射信号和目标回波信号&#xff0c;软件将编译生成的雷达信号任意波数据下载到信号发生器中&#xff0c;主要是1466-V矢量信号发生器&#xff0c;可实现雷达信号模拟产生。软件可模…

TensorRT-Int8量化详解

int8量化是利用int8乘法替换float32乘法实现性能加速的一种方法 对于常规模型有&#xff1a;y kx b&#xff0c;此时x、k、b都是float32, 对于kx的计算使用float32的乘法 对于int8模型有&#xff1a;y tofp32(toint8(k) * toint8(x)) b&#xff0c;其中int8 * int8结果为in…

SpringBoot的热部署和日志体系

SpringBoot的热部署 每次修改完代码&#xff0c;想看效果的话&#xff0c;不用每次都重新启动代码&#xff0c;等待项目重启 这样就可以了 JDK官方提出的日志框架&#xff1a;Jul log4j的使用方式&#xff1a; &#xff08;1&#xff09;引入maven依赖 &#xff08;2&#x…

头歌资源库(20)最大最小数

一、 问题描述 二、算法思想 使用分治法&#xff0c;可以将数组递归地分割成两部分&#xff0c;直到数组长度为1或2。然后比较这两部分的最大、次大、次小、最小数&#xff0c;最终得到整个数组中的最大两个数和最小两个数。 算法步骤如下&#xff1a; 定义一个函数 findMinM…

uniapp/Android App上架三星市场需要下载所需要的SDK

只需添加以下一个权限在AndroidManifest.xml <uses-permission android:name"com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY"/>uniapp开发的&#xff0c;需要在App权限配置中加入以上的额外权限&#xff1a;

Generative Modeling by Estimating Gradients of the Data Distribution

Generative Modeling by Estimating Gradients of the Data Distribution 本文介绍宋飏提出的带噪声扰动的基于得分的生成模型。首先介绍基本的基于得分的生成模型的训练方法&#xff08;得分匹配&#xff09;和采样方法&#xff08;朗之万动力学&#xff09;。然后基于流形假…

2024 年 亚太赛 APMCM (B题)中文赛道国际大学生数学建模挑战赛 |洪水灾害数据分析 | 数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题&#xff01; 完整内容可以在文章末尾领取&#xff01; 该段文字…

HTML内容爬取:使用Objective-C进行网页数据提取

网页爬取简介 网页爬取&#xff0c;通常被称为网络爬虫或爬虫&#xff0c;是一种自动浏览网页并提取所需数据的技术。这些数据可以是文本、图片、链接或任何网页上的元素。爬虫通常遵循一定的规则&#xff0c;访问网页&#xff0c;解析页面内容&#xff0c;并存储所需信息。 …

自动化立体仓库出入库能力及堆垛机节拍

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 完整版文件和更多学习资料&#xff0c;请球友到知识星球【智能仓储物流技术研习社】自行下载 自动化立体仓库的出入库能力、堆垛机节拍以…

用720云搭建数字孪生VR智慧安防系统,赋能安防升级!

“安全防范"一直是我国城镇化发展进程中重点关注的工作板块&#xff0c;随着时代发展需求与科技的日新月异&#xff0c;安防行业正在积极融合VR3D数字孪生技术&#xff0c;升级安防数字基础设施和安防产品服务创新。 今年2月&#xff0c;《数字中国建设整体布局规划》的出…