是的argv [ARGC]等于NULL指针 [英] Is argv[argc] equal to NULL Pointer

查看:180
本文介绍了是的argv [ARGC]等于NULL指针的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我读到一篇文章(忘了URL),这表示, ARGV [ARGC] NULL 指针(包含 \\ 0 )。要检查是否是否是真的我写这篇code,是它存在。我不明白的是,为什么操作系统包括 NULL 指针的argv [ARGC] 。它是为别的也有用的东西?

  INT
主(INT ARGC,字符** argv的){    而(* argv的)
        的printf(%S \\ n,* argv的++);    返回0;
}


解决方案

C标准 5.1.2.2.1 / 2 秒大关明确地说:


  

ARGV [ARGC]应是一个空指针。


C ++标准 3.6.1 / 2 还明确地说。


  

的argv的值[ARGC]应为0。


I read an article (forgot the URL), which said that argv[argc] is a NULL pointer (contains \0). To check whether if its true I wrote this code, yeah it exist. What I don't understand is, why does the OS include this NULL pointer at argv[argc]. Is it useful for something else also?

int
main (int argc, char **argv){

    while (*argv)
        printf ("%s\n", *argv++);

    return 0;
}

解决方案

The C Standard 5.1.2.2.1/2 second mark says explicitly

argv[argc] shall be a null pointer.

The C++ Standard 3.6.1/2 also says explicitly

The value of argv[argc] shall be 0.

这篇关于是的argv [ARGC]等于NULL指针的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆