Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C中命令行参数的字符串_C_Pointers_Char_Variable Assignment_Incompatibletypeerror - Fatal编程技术网

C中命令行参数的字符串

C中命令行参数的字符串,c,pointers,char,variable-assignment,incompatibletypeerror,C,Pointers,Char,Variable Assignment,Incompatibletypeerror,我在这里收到一条错误消息-初始化从指针生成整数,而不进行强制转换。file1和file2是文件名。我如何处理这个问题?argv[1]和argv[2]具有指向字符串的类型char*,而对象file1和file2具有char类型,不是指针。因此,编译器发出一个错误,即您试图将指针(argv[1]和argv[2])分配给没有意义的字符(file1和file2) int main(int argc, char* argv[]) { char file1 = argv[1]; char f

我在这里收到一条错误消息-初始化从指针生成整数,而不进行强制转换。file1和file2是文件名。我如何处理这个问题?

argv[1]
argv[2]
具有指向字符串的类型
char*
,而对象
file1
file2
具有char类型,不是指针。因此,编译器发出一个错误,即您试图将指针(
argv[1]
argv[2]
)分配给没有意义的字符(
file1
file2

int main(int argc, char* argv[]) {
    char file1 = argv[1];
    char file2 = argv[2];
}
你需要写作

char file1 = argv[1];
char file2 = argv[2];

在这种情况下,指针
file1
file2
将指向用户提供的表示文件名的字符串。

char
->
char*
变量
argv
是指向
char
的指针数组。每个元素的类型都是
char*
。哦,除非您先选中
argc
,以确保索引有效,否则不要使用
argv
数组中的指针。这是否回答了您的问题?@Someprogrammerdude的规则有一个例外:
argv
-数组也是以null结尾的(由标准保证),因此您也可以替代检查
argc
,比如
for(char**p=argv;*p;++p){/*使用*p*/}
。但这很少被使用。
char *file1 = argv[1];
char *file2 = argv[2];