C++ 2

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

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所指向的节点的内容。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容