首页 > 解决方案 > 声明多个指针

问题描述

我正在尝试从 argv 数组中定义多个指针,但没有成功。

char *val1, *val2, *val3, *val4 = argv[1], argv[2], argv[3], argv[4];
file.c: In function 'valid_args':
file.c:108:60: error: conflicting types for 'argv'
         char *val1, *val2, *val3 = argv[1], argv[2], argv[3];
                                                            ^
file.c:108:51: note: previous declaration of 'argv' was here
         char *val1, *val2, *val3 = argv[1], argv[2], argv[3];
                                                   ^
file.c:127:60: error: conflicting types for 'argv'
         char *val1, *val2, *val3 = argv[1], argv[2], argv[3];
                                                            ^
file.c:127:51: note: previous declaration of 'argv' was here
         char *val1, *val2, *val3 = argv[1], argv[2], argv[3];
                                                   ^
file.c:128:24: warning: initialization makes pointer from integer without a cast [enabled by default]
         char *val4 = argv[4];

标签: cpointers

解决方案


您的代码中存在语法错误。

更好的方法:

char *var1, *var2, *var3, *var4;
var1 = argv[1];
var2 = argv[2];
var3 = argv[3];
var4 = argv[4];

它也更具可读性。


推荐阅读