c语言如何用argv输入参数,C语言中参数向量argv问题

article/2025/10/5 7:49:43

f642d03fa1e3bf5d17b1963cb5daf8f8.png

跃然一笑

楼上蓝皮鼠基本上都回答了,我就再啰嗦几句补充一点东西吧;-)这问题其实挺有趣的,对于argv来说,既然定义成char*argv[]那不就是说明argv是一个指向字符串的指针数组,怎么也能左值操作?我们知道数组名其实就是一个常量,是不能被直接修改的,这是它与指针一个最大的区别。这里argv与arr最大的区别是一个是函数中的参数,一个是定义的局部变量。一般可以从两个方面来理解这个问题。一个方面,正如蓝皮鼠所说的,main函数的原型中argv其实是char**argv这样,对于定义成char*argv[]的参数,gcc在编译时会有一个隐式转换,因为这里这两者是是相容的,就算你定义成charconst*argv[]对于argv来说,这个定义就不相容了。不过一般会有两个结果,要么编译器很严格直接报错,要么会给个警告信息,然后继续把它当成char**argv来用。所以你直接对argv进行左值运行,代码可以被编译通过,就正常了。另一方面,在C语言中,参数中的数组传递有些特殊。比如下面的代码:#includeintfunc(char*v[]){*++v;printf("&v=%x\tv=%x\n",&v,v);}intmain(intargc,charconst*argv[]){charconst*arr[]={"1","2","3"};printf("&argv=%x\targv=%x\n",&argv,argv);printf("&argc=%x\targc=%x\n",&argc,argc);func(argv);}因为main函数是程序的入口函数,是被编译内部定义好的,所以可以再定义一个intfunc(char*v[])结果发现这个v仍然可以进行左值操作。上面说了参数中数组的传递有些特殊,因为在实际处理参数中的数组时,其实编译器是把它当成一个指针来处理。比如你定义好一个数组`chararr2[10];`假定有一个函数,其原型如下:intfunc2(charp[]);那么当以下调用发生时:func2(arr2);arr2的值会被复制一份到一个内部局部变量指针(堆栈或寄存器)中,这个指针指向arr2[0]的位置。这样arr就被传递进func2函数中了。同时,这也是在定义函数的参数时,如果参数中有数组,我们一般不用在数组标记中间写上数组长度值的原因,因为没有意义,实际只是把数组的地址进行了传递。比如:'intfunc2(chararr[10])'这就是我的理解和说明,希望对你有所帮助。


http://chatgpt.dhexx.cn/article/NEDHQdxc.shtml

相关文章

python sys.argv

sys.argv 是获取运行python文件时的命令行参数,且以list形式存储参数。 这里主要介绍常见的几种用法: 1. sys.argv[0] 输出py文件本身的路径或名称 test.py 文件里的代码如下: import sysasys.argv[0] print(a)运行test.py文件的结果如…

命令行参数argv

1.命令行参数argv 。本质是个指针,或者说数组,存储需要输入的参数,通俗来说,就是input()的功能。在python中要是用的话,需要import sys。如果是在pycharm中使用,将参数在下图中的位置填入,以空格…

g++ 编译过程体会与命令行参数argc,argv[]详解

argc, *argv[] 参数介绍 main(int argc,char *argv[ ]) argc为整数, 代表参数的个数。 argv为指针数组,里面的元素个数是 argc 个,(可理解为:char **argv or: char *argv[] or: char argv[][] )。 注:mai…

C语言中函数main的参数argc和argv是什么

在 Xcode 中新建一个 macOS 平台 Command Line Tool,使用 C 语言,会发现 main 带了两个参数:argc和argv。如下: argc被程序唤起的命令行参数的数量,用于统计参数数量。这里会导致你有一个误区,在下面argv[…

李宏毅线性代数笔记6:矩阵的计算

1 矩阵的几个概念 1.1 特殊矩阵 1.1.1 数量矩阵 主对角线上元素是同一个数,其余元素全为0的n级矩阵 1.1.2 对角矩阵(diagonal matrix) 主对角线元素之外全为0的方阵 记作diag{d1,d2,……dn} 1.1.3 基本矩阵 只有一个元素是1&#xff…

二、线性代数

6 特殊类型的矩阵和向量 对角矩阵 对角矩阵(diagonal matrix)只在主对角线上含有非零元素,其他位置都是零。形式上,矩阵 D D D 是对角矩阵,当且仅当对于所有的 i ≠ j , D i , j 0 i\ne j, \ D_{i,j}0 i​j, Di…

边缘计算与雾计算的区别

雾计算是对MEC的扩展,扩展到了终端侧,包括计算、存储、存储、控制功能。区别如下: 1.MEC使用的资源是网络边缘的设备,而雾计算还要使用终端设备。 2.雾计算是使得云到物的计算无缝连续衔接。 3.雾计算为垂直行业和应用除提供电信业…

雾计算、边缘计算区别和联系

01 从计算方式上边来说的话,雾计算的层次性稍微强一点,并且架构方面比较平坦,这样下来的话整个计算的平稳性就比较好一点。 02 对于边缘计算来说的话,边缘计算在进行计算的时候是不会对网络产生依赖的,也就是说边缘计算…

雾计算机和云计算机哪个好,怎么理解云计算和雾计算还有边缘计算

此外,《数据时代 2025》还预测,2025 年数据量产生的大主体将由消费者转移到企业,届时企业产生的数据量将占到数据总量的 60%。企业领导者将可以从这些海量数据信息和其价值中获得新的商业机遇,但同时也需要对收集、使用和存储数据…

雾计算-思科白皮书 原文+翻译 | 带你全面官方解读雾计算

前言 预感近阶段雾计算会被再次炒起,众所周知雾计算的概念是思科提出来的,于是找来思科白皮书,却是英文版,闲来无事借google翻译将PDF翻译并排版,方便更多的人认识原汁原味的雾计算。 雾计算和物联网:将云…

[Spark基础]--雾计算

wiki解释 雾计算(英语:Fog Computing)或雾联网(fog networking,或fogging),是使用最终用户终端设备或连接最终用户设备的边缘设备,以分布式协作架构进行数据存储(相较于将…

AI之边缘计算、雾计算云计算技术分析

边缘计算产生背景: 随着移动智能设备的普及以及5G等无线通信技术的发展,涌现出许多具有低延迟要求的计算密集型应用,如在线沉浸式游戏、增强现实和视频流分析等. 由于传统的云计算无法满足这些应用对低延迟的需求,研究者提出了一种新型的计算模式,称为边缘计算. 边…

第三章-云计算边缘计算雾计算

【前言】随着万物互联时代的到来,网络边缘设备产生的数据量快速增加,带来了更高的数据传输带宽需求。于此同时,新型应用也对数据处理的实时性提出了更高要求,传统云计算模型已经无法有效应对,边缘计算、雾计算应用而生…

云计算、雾计算、边缘计算、移动边缘计算和自动驾驶的关系

什么是云计算呢? 简单来说,云计算就是将很多计算机资源和服务集中起来,人们只要接入互联网,将能很轻易、方便的访问各种基于云的应用信息,省去了安装和维护的繁琐操作。 当然,个人和企业也能使用云计算中心…

【笔记】雾计算中移动应用的优先级约束任务调度

目录 前置 摘要 介绍 模型 应用模型 计算和通信模型 能耗模型 问题定义 NP难 预功率分配算法 能量约束调度 算法1:具有启发式H的能量约束列表调度(ECLS-H) 时间约束调度 算法2:具有启发式H的时间约束列表调度&#…

文章云计算的兄弟,雾计算要来了

转自: http://tech.china.com/news/company/892/20160219/21553952_all.html#page_2 现在正在流行的“云计算”,是把大量数据放到“云”里去计算或存储。这样,就解决了目前电脑或手机存储量不够,或者是运算速度不够快的问题&#…

话题 | 雾计算和边缘计算有什么区别?

原文:http://readwrite.jp/infrastructure/32649/ 随着物联网的发展,经常听到「雾计算」和「边缘计算」这样的单词。 雾计算这个词相对来说是最近出现的一个词。因为和云相比位置上更接近设备,所以表示为雾,它是作为实现IoT的结构…

边缘计算和雾计算什么关系_什么是雾计算?

边缘计算和雾计算什么关系 By now most people are more than familiar with the concept of Cloud Computing, but what about the new concept referred to as Fog Computing? Today’s Q&A post takes a look at this new concept and how it differs from Cloud Compu…

【知识积累】Edge vs Fog Computing 边缘计算和雾计算的基本介绍

前言 边缘计算和雾计算都可以被定义为技术平台,使计算过程更接近数据产生和收集的地方,以下详细解释了这两个概念。 顾名思义,边缘计算发生在应用网络的“边缘”。从拓扑结构上看,“边缘计算机”在网络的端点上(如控…

大话:边缘计算、雾计算、云计算

云计算 一种利用互联网实现随时随地、按需、便捷地使用共享计算设施、存储设备、应用程序等资源的计算模式。 云计算系统由云平台、云存储、云终端、云安全四个基本部分组成,云平台从用户的角度可分为公有云、私有云、混合云等。 通过从提供服务的层次可分为&#x…