如何将char*argv []从Main函数指向表

Mik*_*key 0 c++ program-entry-point console-application

我会试着解释一下我想做什么.我有程序(不起作用),它是从Windows中的CMD控制台调用的.我正在使用main函数的参数

int main(int argc, char *argv[])
Run Code Online (Sandbox Code Playgroud)

但在这种情况下我不能使用调试器来找到我做错了什么...我能以某种方式将char*argv []参数连接到代码中创建的表吗?例:

int main(int argc, char *argv[])
{
char tablica[] = { 'K','2','+','1','-','3','*','(','3','+','2',')','*','2' };
tablica = **argv; //// IDK HOW TO CONNECT THESE TWO 
Run Code Online (Sandbox Code Playgroud)

Jea*_*bre 6

这里是你如何伪造参数传递和替换你的数组

#include <stdio.h>

int main(int argc, char* argv[]){
     char *tablica[] = { argv[0],"K","2","+","1","-","3","*","(","3","+","2",")","*","2" };
     int i;
     argv=tablica;
     argc=sizeof(tablica)/sizeof(tablica[0]);

     for (i=0;i<argc;i++)
     {
         printf("%s\n",argv[i]);
     }
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

结果:

your_executable
K
2
+
1
-
3
*
(
3
+
2
)
*
2
Run Code Online (Sandbox Code Playgroud)

注意:为了符合argc,argv:

  • 我已将字符数组更改为char *(单引号=>双引号)数组.这似乎是合乎逻辑的,因为没有它你不能传递你的参数中的数字> 9!
  • 我也被覆盖argc了(从你的数组中自动计算)
  • 我已在您的数组中插入程序名称,否则它将转换参数解析.