char 型数组传递参数给整型变量

#include <stdio.h>
int main(int argc, char* argv[])
{
     int i;
     i = argv[1];
     return 0;
}

请教一下各位,我想要将 argv[] 中的整数传递给整型变量应该怎么做呢?

使用 stdlib 的 atoi a(ascii码)to (转) i (integer 整数),如果有用麻烦点个采纳吧,谢谢~

#include <stdlib.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
     int i;
     i = atoi(argv[1]);
     return 0;
}
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7490716
  • 你也可以参考下这篇文章:手动构造完全与`char *argv[]` 等价的参数
  • 除此之外, 这篇博客: 主函数参数以及char argv[][]、char * argv[]和char ** argv的区别中的 主函数的参数: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • int main(int argc,char *argv,char *envp)

    主函数实际上有三个参数:
    argc:表示有命令行参数个数,第一个为可执行行程序名,argc最少为1。
    argv:参数名。
    envp:系统的环境变量,很少使用,下文不使用该参数。
    tip:主函数带参数,第一个参数必须是int型,用来接收形参个数,第二个参数必须是字符指针数组,用来接收从操作系统命令行传来的一个字符串的地址。
    主函数参数来源:
    主函数的参数其实是程序的“命令行参数”,argc(argument count)是参数个数,argv(argument vector)是参数向量,是一个char *类型指针数组,数组中的每一个元素(其值为指针)指向命令行中的一个字符串的首字符。
    主函数由操作系统调用,其参数也由操作系统传递,在DOS,UNIX和LINUX操作系统的命令行中包括了命令名和传递给主函数的参数。
    命令行的一般格式:
    命令名 参数1 参数2 ··· 参数n

    //我们用程序来看一下操作系统命令行给主函数传参
    #include <stdio.h>
    
    int main(int argc,char * argv[])
    {
    	int i;
            printf("we have %d argument\n",argc);
            for(i=0; i<argc; i++)
            {
                    printf("NO.%d argument is %s\n",i+1,argv[i]);
            }
            return 0;
    	return 0;
    }

    在linux下跑的结果:
    在这里插入图片描述
    main函数的第二个参数的不同写法:
    int main(int argc,char * argv[])≈int main(int argc,char **argv)

i = atoi(argv[i]);