BlackWhite_idea 发表于 2022-1-6 20:17:12

main函数的argv形式参数,我不是很理解小甲鱼的意思

C 语言还规定C语言还规定了argc(第一个形参)必须是整型变量,argv(第二个形参)必须是指向字符指针的指针(注意:它不是指针数组,但你可以理解为指向一个字符指针数组名或字符串数组,在函数章节我们将详细讲解,这里只要求你能够根据案例模仿实现即可)

这里指向字符指针数组 不就是指向数组指针的指针吗?

傻眼貓咪 发表于 2022-1-6 20:17:13

我的理解是:#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) 这只是范例

*/

BlackWhite_idea 发表于 2022-1-6 20:17:45

搞得乱糟糟的。。

大马强 发表于 2022-1-6 20:43:44

我的理解是
字符指针数组,那就是数组了,你的意思应该是 字符指针的指针

BlackWhite_idea 发表于 2022-1-6 20:54:39

大马强 发表于 2022-1-6 20:43
我的理解是
字符指针数组,那就是数组了,你的意思应该是 字符指针的指针

那岂不是就是指针数组??

大马强 发表于 2022-1-6 20:55:20

BlackWhite_idea 发表于 2022-1-6 20:54
那岂不是就是指针数组??

是呀

大马强 发表于 2022-1-6 20:59:30

数组的大小在于它声明的类型
而指针在32位的系统下面是4Byte,而在64位系统下面是8Byte

wp231957 发表于 2022-1-7 07:24:35

本帖最后由 wp231957 于 2022-1-7 07:25 编辑

BlackWhite_idea 发表于 2022-1-6 20:54
那岂不是就是指针数组??

第二个参数是一个字符串数组
就是cmd命令行后面跟的一些参数

wp231957 发表于 2022-1-7 09:14:13

用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]
查看完整版本: main函数的argv形式参数,我不是很理解小甲鱼的意思