获取值而不取消引用C中的指针

Max*_*x_S 2 c pointers

我对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)

Cod*_*dor 5

'参数向量' argv是指向指针(类型char**)的指针.代码中的赋值argv[1](类型char*)赋值File_1(也是类型char*).总的来说,a char*被复制到另一个char*.指针不会被进一步解除引用,否则只会char复制一个指针,这是不希望的.在C中,字符串通常被实现为char*,并且仅复制一个字符串char将与该语义相矛盾.