文章目录
前
总结
前言
近日在完成作业时,发现了关于return返回字符的问题
话不多说,直接上超简单实例
#includechar game() { if (1) return "char";//“char”与“char [5]”的间接级别不同 return 'draw';// 从“int”到“char”截断 } int main() { char tmp=game(); return 0; }
大家注意看,上面的间接级别不同,意思就是我们可以做到用字符数组来接受
但下面的截断(节多的数据类型赋给一个占字节少的变量类型,会发生“截断”。就是丢失数据的意思)
draw本身不是一个字符,它发生了截断会导致返回值可能只有最后一个字符,如果我们规规矩矩的返回单字符是没有问题的,也可以使用ASCII码
但是,上面双引号的字符串间接级别不同说明什么呢?
总结
msdn上:Strings in C are arrays of char elements, so we can’t really return a string - we must return a pointer to the first element of the string.
原来,C语言中的字符串本质上是char类型,我们接受的时候只能使用数组或者指针,不能直接接受



