main函数的argv形式参数,我不是很理解小甲鱼的意思
C 语言还规定C语言还规定了argc(第一个形参)必须是整型变量,argv(第二个形参)必须是指向字符指针的指针(注意:它不是指针数组,但你可以理解为指向一个字符指针数组名或字符串数组,在函数章节我们将详细讲解,这里只要求你能够根据案例模仿实现即可)这里指向字符指针数组 不就是指向数组指针的指针吗? 我的理解是:#include <stdio.h>
int main(int argc, char *argv[])
{
printf("argc: %d\n", argc);// argument count参数数量
printf("argv: %s\n", *argv); // argument vector 文件路径,比如:C:\xxxx\xxxx\Documents\C语言\课后作业_001.exe
return 0;
}
/*
假设系统传递参数:
*argv[] = {
"C:",
"\xxxx",
"\xxxx",
"\Documents",
"\C语言",
"\课后作业_001.exe",
NULL
}
那么这里的 argv 数组里就有 6 个元素,argc = 6
int main(6, argv) 这只是范例
--------------------------------------------------------
假设系统传递参数:
*argv[] = {
"C:\xxxx\xxxx\Documents\C语言\课后作业_001.exe",
NULL
}
那么这里的 argv 数组里就有 1 个元素,argc = 1
int main(1, argv) 这只是范例
*/ 搞得乱糟糟的。。 我的理解是
字符指针数组,那就是数组了,你的意思应该是 字符指针的指针 大马强 发表于 2022-1-6 20:43
我的理解是
字符指针数组,那就是数组了,你的意思应该是 字符指针的指针
那岂不是就是指针数组?? BlackWhite_idea 发表于 2022-1-6 20:54
那岂不是就是指针数组??
是呀 数组的大小在于它声明的类型
而指针在32位的系统下面是4Byte,而在64位系统下面是8Byte 本帖最后由 wp231957 于 2022-1-7 07:25 编辑
BlackWhite_idea 发表于 2022-1-6 20:54
那岂不是就是指针数组??
第二个参数是一个字符串数组
就是cmd命令行后面跟的一些参数 用python给你解析一下:(原理是一样的)
import sys
sum=0
for x in sys.argv:
sum+=int(x)
print("sum=",sum)
'''
PS C:\Users\Administrator> & C:/Programs/Python/python.exe d:/wp/test7.py 122345
sum= 80
PS C:\Users\Administrator> & C:/Programs/Python/python.exe d:/wp/test7.py 122345 56 89
sum= 225
'''
页:
[1]