从'char *'到'char'的无效转换[-fpermissive]如何打印?但在变量中

问题描述 投票:1回答:2
struct student{
    char name[30]...
};

struct element
{
    struct element *ant;
    struct student databse;
    struct element *prox;
};
Element *no = *pointer_to_pointer;

cout<< (*no).datbase.name << endl;

我正确打印了名字。

Element *no = *pointer_to_pointer;

char variable = (*no).datbase.name;
    cout<< variable << endl;

错误。为什么???如何打印?但是在variable中。谢谢。

c++ pointers linked-list char
2个回答
0
投票

datbase.name的类型是char[],这意味着您不能直接将其分配给char变量。使用char *variable代替:

char *variable = (*no).datbase.name;
    cout<< variable << endl;

如果只打印一个char角色,请写:

char variable = (*no).datbase.name[0]; //the first character of 'name'

0
投票

您正在尝试将char数组name转换为单个char,这将不起作用,这些类型不兼容。

如果要使用name的内容,则应使用:

const char* variable = (*no).datbase.name;
std::cout << variable << std::endl;

如果要在name char数组内建立索引,请使用[]对其进行索引,如下所示:

/* Take first character of name */
char variable = (*no).datbase.name[0];
std::cout << variable << std::endl;
© www.soinside.com 2019 - 2024. All rights reserved.