返回char*的方法?
void test(int *a,int *b,int *c){
*a=1;
*b=2;
*c=3;
}
void main()
{
int r,s,t;
test(&r,&s,&t);
}
以上的方法,
将int 改为 char 不能正常运行,
请问应如何变换?
问题点数:20、回复次数:7Top
1 楼vcleaner(我没当大哥很久了.......)回复于 2004-11-04 09:02:14 得分 1
char*对应的是字符数组的指针吧,而不是char吧,呵呵Top
2 楼yzx0023(无聊客)回复于 2004-11-04 09:05:32 得分 2
void main()
{
int r,s,t;
char a,b,c;
test(&r,&s,&t);
a = (char)r;
b = (char)s;
c = (char)t;
}Top
3 楼bluwindhrt(风一飞)回复于 2004-11-04 09:08:48 得分 2
void test(char *a,char *b,char *c){
*a=1;
*b=2;
*c=3;
}
void main()
{
char r,s,t;
test(&r,&s,&t);
}
//这样不能运行吗?
//不可能吧!
Top
4 楼hushuangyan74()回复于 2004-11-04 09:13:38 得分 7
我认为把int改为char可以正常运行,只是赋值时要作点修改,具体如下:
#include "iostream.h"
void test(char* a,char* b,char* c)
{
*a='1';
*b='2';
*c='3';
}
int main(int argc, char* argv[])
{
char r,s,t;
test(&r,&s,&t);
cout<<r<<" "<<s<<" "<<t<<endl;
return 0;
}
结果为1 2 3
你把整数赋给字符变量,就有问题!
Top
5 楼edrftgyh(老胡)回复于 2004-11-04 09:15:42 得分 1
最好用引用!Top
6 楼edrftgyh(老胡)回复于 2004-11-04 09:18:26 得分 2
void test(char *a,char *b,char *c){
*a=1;
*b=2;
*c=3;
}
void main()
{
char r,s,t;
test(&r,&s,&t);
}
从语法上说,这是完全正确的!Top
7 楼bit1010(小虾风清扬)回复于 2004-11-04 09:23:24 得分 5
#include"iostream.h"
void test(char *a,char *b,char *c){
*a=1+48;
*b=2+48;
*c=3+48;
}
void main()
{
char r,s,t;
test(&r,&s,&t);
cout<<r<<s<<t<<endl;
}
因为你的赋值是整数,显示的是这个整数作为ASCII值对应的字符,加48可以正常显示。给分吧。Top




