gpt4 book ai didi

c++ - 为什么 argc 的输出不同?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:50:55 25 4
gpt4 key购买 nike

为什么下面argc的输出有差异?

首先:

#include<stdlib.h>
#include<stdio.h>
#include<iostream>
int main(int argc,char *argv[])
{
for(int i=1;i<=argc;i++)
std::cout<<argv[i]<<"\n"<<std::endl;
std::cout<<argc<<std::endl;
return 0;
}

我得到了 argv 的输出,但是我没有得到 argc 的输出。

第二种情况:

#include<stdlib.h>
#include<stdio.h>
#include<iostream>
int main(int argc,char *argv[])
{
std::cout<<argc<<std::endl;
for(int i=1;i<=argc;i++)
std::cout<<argv[i]<<"\n"<<std::endl;
return 0;
}

我得到 argv 和 argc 的输出。

在这两种情况下,如果我使用“printf”而不是“cout”,我都会得到 argc 的输出。

为什么argc的输出有差异?

最佳答案

您的代码在这两种情况下的行为都是未定义。您需要替换 i<=argci < argc .

根据 C++ 标准 argv[argc]nullptr . 不要尝试取消引用它。

关于c++ - 为什么 argc 的输出不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45101564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com