gpt4 book ai didi

c - 在不取消引用 C 中的指针的情况下获取值

转载 作者:行者123 更新时间:2023-12-04 10:32:07 25 4
gpt4 key购买 nike

我对 C 中的指针有点困惑。我的理解是,要从指针中获取值,我们需要在前面加上星号(解引用)。那么,为什么在下面的代码中我定义了两个指针,然后将 argvs 指向的内容分配给它们就可以正常工作了?但是,如果我在 printf 中加上星号,它就不起作用了吗?IE。如果我的参数是 file_onefile_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;
}

最佳答案

“参数 vector ”argv 是指向指针(类型char**)的指针。代码中的赋值将argv[1](类型为char*)赋值给File_1(类型也是字符*)。总的来说,一个char*被复制到另一个char*。指针不再被取消引用,否则只会复制一个 char,这是不希望的。在 C 中,字符串通常实现为 char*,仅复制一个 char 会与这种语义相矛盾。

关于c - 在不取消引用 C 中的指针的情况下获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28064484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com