易码技术论坛

 找回密码
 加入易码
搜索
查看: 232530|回复: 10

[求助]麻烦大家帮忙看下怎么回事

[复制链接]
发表于 2004-12-21 17:00:00 | 显示全部楼层
这个是ByVal还是ByRef的事...
字符串是传地址的...剩下的就是传数值的..
 楼主| 发表于 2004-12-16 23:41:00 | 显示全部楼层
但改成int在子程序word里面就无法取得s[n]的值
大家看怎么回事,有什么办法解决
发表于 2004-12-17 08:59:00 | 显示全部楼层
是lava吧。
void word(char s)//出错
{
printf("%s",s);
}
当然会出错了。printf的%s要求的是字符串参数,所以应该传地址,在lava中,地址的类型是long(int也可以,但最好用long)。
发表于 2004-12-17 15:06:00 | 显示全部楼层
必须是int或者long。传递的是地址啊~并不是传递char。
 楼主| 发表于 2004-12-17 18:48:00 | 显示全部楼层
那这样如何在子程序中取得字符串第n个字符s[n]?
发表于 2004-12-18 17:30:00 | 显示全部楼层
*(s+n)就是你要的s[n]。
 楼主| 发表于 2004-12-18 19:36:00 | 显示全部楼层
谢谢了
 楼主| 发表于 2004-12-18 22:59:00 | 显示全部楼层
能再具体点么
是s*(s+n)?
发表于 2004-12-19 21:06:00 | 显示全部楼层
具体就要从字符串在内存中的存储说了:
开始地址s:"ABCDEFGHIJKLMN",0
您设置的s变量其实就是个地址了,地址s处是字符串的"A",所以s+1就是"B"的地址,依次类推~~
老F说的*(s+n)就是您要的字符串第n个字符喽,跟s[n]一样,不过这里不能直接用s[n]表示~~恩,完了![em05]
发表于 2005-1-7 18:53:00 | 显示全部楼层
char型数据要用%c来代替啊,晕
 楼主| 发表于 2004-12-16 23:38:50 | 显示全部楼层 |阅读模式
void word(char s)//出错
{
printf("%s",s);
}

void main()
{
word("sdjflkasdjf");
}


void word(int s)//换成int就没事?
{
printf("%s",s);
}

void main()
{
word("sdjflkasdjf");
}


您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-19 16:27 , Processed in 0.011064 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表