鱼C论坛

 找回密码
 立即注册
查看: 1042|回复: 3

[已解决]int argc,char*const argv

[复制链接]
发表于 2023-12-4 11:33:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
int main(int argc,char*const argv)
{
        struct date{
        int year;
        int month;
        int day;
};
        struct date today={2023,12,04};
        printf("今天是%d.%d.%d\n",today.year,today.month,today.day);
        return 0;
}


.................................................................................................



#include<stdio.h>
struct date{
        int year;
        int month;
        int day;
};
int main()
{
        struct date today={2023,12,04};
        printf("今天是%d.%d.%d\n",today.year,today.month,today.day);
        return 0;


int argc,char*const argv 是啥
上面代码都可以运行,第一个没看懂
最佳答案
2023-12-4 11:35:44
-kasha 发表于 2023-12-04 11:35
请问下,这2个代码 有什么区别

这两个代码的区别在于函数声明和参数的不同。

第一个代码中的 "int argc, char* const argv" 是main函数的完整声明。它表示main函数接受两个参数,argc是一个整数,代表命令行参数的数量;argv是一个指向字符数组的指针,用于存储每个命令行参数的字符串。这样的声明是标准C/C++的写法,可接受命令行参数传递给程序。

第二个代码中,没有给出main函数的完整声明。它没有定义参数类型和名称,只是简单地写了一个空的main函数。这种写法在某些编译器中可能会得到警告,但通常也能正常运行。这样的写法适用于不需要处理命令行参数的简单程序。

因此,如果你的程序需要处理命令行参数,应该使用第一个代码示例中的完整声明;如果程序不需要处理命令行参数,可以使用第二个代码示例中的简化写法。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-4 11:33:23 | 显示全部楼层
int argc, char* const argv 是C/C++中main函数的参数,用于接收命令行传递给程序的参数。

在命令行中,可以通过输入参数来启动程序并传递一些信息。例如,在命令行中输入“./a.out arg1 arg2”,其中"./a.out"是可执行文件的路径,"arg1"和"arg2"是传递给程序的参数。而int argc表示参数的个数,char* const argv[]是一个指针数组,每个元素都是一个指向存储参数字符串的指针。

例如,如果在命令行中运行该程序并传递了两个参数,则argc的值为3(包括可执行文件路径),argv的指针数组中的第一个元素指向可执行文件路径,第二个元素指向第一个传递的参数,第三个元素指向第二个传递的参数。

在第一个代码示例中,int argc,char*const argv 这部分是函数声明的一部分,可以省略。因此,代码也可以写成:

#include
int main()
{
    struct date today={2023,12,04};
    printf("今天是%d.%d.%d\n",today.year,today.month,today.day);
    return 0;
}

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-4 11:35:30 | 显示全部楼层
FishC_GPT 发表于 2023-12-4 11:33
int argc, char* const argv 是C/C++中main函数的参数,用于接收命令行传递给程序的参数。

在命令行中,可 ...

请问下,这2个代码 有什么区别
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-4 11:35:44 | 显示全部楼层    本楼为最佳答案   
-kasha 发表于 2023-12-04 11:35
请问下,这2个代码 有什么区别

这两个代码的区别在于函数声明和参数的不同。

第一个代码中的 "int argc, char* const argv" 是main函数的完整声明。它表示main函数接受两个参数,argc是一个整数,代表命令行参数的数量;argv是一个指向字符数组的指针,用于存储每个命令行参数的字符串。这样的声明是标准C/C++的写法,可接受命令行参数传递给程序。

第二个代码中,没有给出main函数的完整声明。它没有定义参数类型和名称,只是简单地写了一个空的main函数。这种写法在某些编译器中可能会得到警告,但通常也能正常运行。这样的写法适用于不需要处理命令行参数的简单程序。

因此,如果你的程序需要处理命令行参数,应该使用第一个代码示例中的完整声明;如果程序不需要处理命令行参数,可以使用第二个代码示例中的简化写法。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 03:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表