首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C程序返回值有关问题

2012-02-25 
C程序返回值问题在一个自定义的功能函数(被调用函数)中,设定的返回值数据类型为 char *function()。而在调

C程序返回值问题

  在一个自定义的功能函数(被调用函数)中,设定的返回值数据类型为 char *function()。而在调用函数中,定义一个字符数组如str[MAXSIZE],对该数组赋值后,直接通过 string.h头文件中的库函数,对被调用函数返回值(char*point=function())和赋值字符数组进行比较操作 strcmp(str[j],*(point+j)),为什么编译过程会出现错误?显示是不能将 char转换为 const char *,为什么?const char *具体含义什么?它在应用的时候,会有哪一些不同?如果要将这两个值进行以上比较,该如何进行修改呢?[color=#000000][/color]

[解决办法]
需要返回堆上分配的空间

最为局部变量的数组不行
[解决办法]
如果非要将它们比较,可以用 const_cast,但是不推荐
[解决办法]
strcmp(str[j],*(point+j))的两个参数都是char类型,不是const char *类型,如果比较用if(str[j] == point[j]),而不是strcmp函数。
[解决办法]
strcmp(str[j],*(point+j))的两个参数都是char类型,不是const char *类型,如果比较用if(str[j] == point[j]),而不是strcmp函数。

同上,strcmp的两个参数是字符串类型的,just like
strcmp("abc", "bcd");

上面str[j]是单个字符,用if(str[j] == point[j]),比较

热点排行