我对C中的指针有点困惑.我的理解是,要从指针获取值,我们需要在前面添加星号(解除引用).那么为什么下面的代码我定义了两个指针,然后分配给他们什么argvs指向工作就好了?但是,如果我把星号放在printf它不起作用?即如果我的论点是file_one,file_two输出将是file_one file_two
谢谢
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
char *File_1, *File_2;
File_1 = argv[1];
File_2 = argv[2];
printf("%s %s\n", File_1, File_2);
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
'参数向量' argv是指向指针(类型char**)的指针.代码中的赋值argv[1](类型char*)赋值File_1(也是类型char*).总的来说,a char*被复制到另一个char*.指针不会被进一步解除引用,否则只会char复制一个指针,这是不希望的.在C中,字符串通常被实现为char*,并且仅复制一个字符串char将与该语义相矛盾.