C++ 2

作者: sakuradream | 来源:发表于2015-11-16 14:28 被阅读16次

    今天主要记录个关于指针的知识,就通过两端代码来说明吧

    argc与argv的关系

    #include<iostream>
    #include<stdio.h>
    #include<stdlib.h>
    
    using namespace std;
    int main(int argc,char* argv[])
    {
        int i;
        for(i=0;i<argc;i++)
        {
            printf("Argument %d is %s .\n\r",i,argv[i]);
        }
        return 0;
    }
    

    上边的代码编译后生成可执行文件1.exe
    在1.exe所在文件下运行终端,在终端中执行命令1.exe a b c,输出的结果为

    Argument 0 is 1.exe.
    Argument 1 is a.
    Argument 2 is b.
    Argument 3 is c
    

    从上段代码可以知道,在终端运行1.exe时,输入三个参数,则在main方法中,argc为4,argv中记录了用户在终端输入的四个值。分别是1.exe、a、b、c

    指针的移动

    #include<iostream>
    #include<stdio.h>
    #include<stdlib.h>
    
    using namespace std;
    int main(int argc,char* argv[])
    {
        int i;
        argc--;
        argv++;
        for(i=0;i<argc;i++)
        {
            printf("Argument %d is %s .\n\r",i,argv[i]);
        }
        return 0;
    }
    

    上边的代码编译后生成可执行文件2.exe
    在2.exe文件所在文件目录下运行终端,在终端中执行命令2.exe a b c,输出的结果为

    Argument 0 is a
    Argument 1 is b
    Argument 2 is c
    

    可以看到在执行了 argv++之后,指针指向了下一个节点,argv[0]对应的始终为指针argv所指向的节点的内容。

    相关文章

      网友评论

        本文标题:C++ 2

        本文链接:https://www.haomeiwen.com/subject/savkhttx.html