当我有指向它的指针时,如何在 C 中打印这个字符串?

Posted

技术标签:

【中文标题】当我有指向它的指针时,如何在 C 中打印这个字符串?【英文标题】:How to print this string in C when I have the pointer to it? 【发布时间】:2022-01-20 09:57:10 【问题描述】:

我是一名 Java 开发人员,我正在学习 C,我想打印一个 string,但它不起作用。我发现与 Java 相比,在 C 中打印 string 非常困难。

这是代码:

static struct t_node* create_tnode(char* n) 
        // Assigning memory to struct variable temp
        struct t_node *temp=(struct t_node * )malloc(sizeof(struct t_node ));
        printf("name = %s\n", temp->name);
        // Assigning value to name variable of temp using arrow operator
        temp->name=n;
        temp->next_dfile=NULL;
        temp->next_file=NULL;

        return temp;

打印此temp->name 不起作用,然后我尝试以这种方式打印*temp->name 或类似此&temp->name 并且不起作用。还有一个问题,这个结构是返回 temp var 还是指向 temp 的指针?提前谢谢!

【问题讨论】:

这个 printf 调用的输出是什么? temp 里面没有任何内容,您只是分配了它 - 您是否尝试在分配 temp->name=n; 之后执行 printf 在将 n 分配给 temp->name 之后放置打印功能。它不会返回 temp 本身。它返回值(地址)临时指针所持有的内容。 【参考方案1】:

你应该在给它赋值后打印变量。这将起作用,

    static struct t_node* create_tnode(char* n) 
        // Assigning memory to struct variable temp
        struct t_node *temp=(struct t_node * )malloc(sizeof(struct t_node ));
                // Assigning value to name variable of temp using arrow operator
        temp->name=n;
        printf("name = %s\n", temp->name);

        temp->next_dfile=NULL;
        temp->next_file=NULL;

        return temp;

【讨论】:

以上是关于当我有指向它的指针时,如何在 C 中打印这个字符串?的主要内容,如果未能解决你的问题,请参考以下文章

当我有一个指向其基类的指针时克隆一个对象?

C ++如何使用指向向量指针的指针

指向抽象类的指针

如何在 C 中创建指向整个字符串的指针?

C指针1

返回一个指向 char 数组的指针。如何打印出数组的全部内容?