从 ‘char*’ 到 ‘char’ 的无效转换 [-fpermissive] 如何打印?但在变量内部
Posted
技术标签:
【中文标题】从 ‘char*’ 到 ‘char’ 的无效转换 [-fpermissive] 如何打印?但在变量内部【英文标题】:invalid conversion from ‘char*’ to ‘char’ [-fpermissive] How to print?? But inside the variable 【发布时间】:2020-06-15 08:24:23 【问题描述】: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
里面。谢谢。
【问题讨论】:
您正在将(*no).datbase.name
转换为您上次 sn-p 中的字符。改用:char* variable = (*no).datbase.name;
。如果你想从名字中获取一个字符,你应该像这样索引名字:char variable = (*no).datbase.name[0];
【参考方案1】:
您正在尝试将 char 数组 name
转换为单个 char,这不起作用,这些类型不兼容。
如果你想使用name
的内容,你应该使用:
const char* variable = (*no).datbase.name;
std::cout << variable << std::endl;
如果您想在 name
字符数组中建立索引,请使用 []
对其进行索引,如下所示:
/* Take first character of name */
char variable = (*no).datbase.name[0];
std::cout << variable << std::endl;
【讨论】:
【参考方案2】:datbase.name
的类型是char[]
,这意味着您不能直接将其分配给char
变量。请改用char *variable
:
char *variable = (*no).datbase.name;
cout<< variable << endl;
如果您只想打印一个char
acter,请写:
char variable = (*no).datbase.name[0]; //the first character of 'name'
【讨论】:
以上是关于从 ‘char*’ 到 ‘char’ 的无效转换 [-fpermissive] 如何打印?但在变量内部的主要内容,如果未能解决你的问题,请参考以下文章
C++ 从 'char' 到 'const char' 的无效转换
从 ‘char*’ 到 ‘char’ 的无效转换 [-fpermissive] 如何打印?但在变量内部
从“const char*”到“unsigned char*”的无效转换
发布 HC-SE04 MQTT ESP8266 的值“从 'char' 到 'char*' [-fpermissive] 的无效转换”