社区
C语言
帖子详情
请问bool test(string& testFileName) 和 bool test(string testFileName)有什么区别??
cd7809
2002-11-25 05:23:37
1: bool test(string& testFileName) 和 bool test(string testFileName)有什么
区别?
2: string test() 和 string& test()有什么区别??
谢谢!!
...全文
88
4
打赏
收藏
请问bool test(string& testFileName) 和 bool test(string testFileName)有什么区别??
1: bool test(string& testFileName) 和 bool test(string testFileName)有什么 区别? 2: string test() 和 string& test()有什么区别?? 谢谢!!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jian
2002-11-25
打赏
举报
回复
加上const可以确保在函数中,该参数不会被改变
这个优点有时候在规模比较大的程序中才能显示出来
skyfine
2002-11-25
打赏
举报
回复
基本的功能是一样的.但从可理解和可看性上来说&要比*更好懂一些.
比如
函数:
1.int swap(int *a,int *b){...};
2.int swap(int &a,int &b){...};
3.int swap(int a,int b){...};
调用:
...
1.swap(&m,&n);//传m,n的地址值
2.swap(m,n); //传m,n的引用.这样更容易理解些.
3.swap(m,n); //经常得到的结果是错误的.
而且由于引用值必须初始化,这样就避免了传送无效值.
cd7809
2002-11-25
打赏
举报
回复
非常感谢 NOldkiller:
那么bool test(string& testFileName) 和bool test(string* testFileName) 是一样的吗? 而且为什么经常用bool test(const string& testFileName)而不是bool test(const string* testFileName)呢??
NOldkiller
2002-11-25
打赏
举报
回复
1.在bool test(string& testFileName)中用到了引用参数,而引用实质上也是一种指针,这时在函数调用时,用的是引用传值方式,这时,不会发生string类的拷贝构造函数的调用,在test函数体中对testFileName的改变实际上就是对实参的改变.而bool test(string testFileName)则是传值调用,这时,会调用string的拷贝构造函数,且在test函数体中对形参所做的任何操作不会影响到实参的改变.
2. string test()
返回时会调用string的拷贝构造函数,这时返回值是一个临时对象,是不可以改变其值的.
而 string& test()则是返回值的左值.
如:
int g_Num = 5;
int& change(int nValue)
{
return nValue;
}
int Nochange(int nValue)
{
return nValue;
}
int main()
{
change(g_Num) = 10; //right
//这时g_Num的值就为10
NoChange(g_Num) = 20; //error
//会发生访问非法错误
return 0;
}
test
和match的用法和
区别
test
和match的用法以及
区别
【JVM】自动内存管理-
String
test
1=”my
test
“和
String
test
2=new
String
(“my
test
“)的
区别
虚拟机栈 中存放了局部变量,基本数据类型
bool
ean、byte、char、short、int、float、double、long、对象引用(不是对象本身) 堆 中存放了对象实例 ==比较的是对象内存地址
String
类中的equals()比较的是对象的内容 public void
test
String
() {
String
test
1 = "my
test
";
String
test
2 = "my
test
";
String
test
3 = new
String
("my
test
"); St
Cotowali测试指南:如何快速上手内置测试运行器lic
test
与[
test
]属性
Cotowali 是一款**静态类型的脚本语言**,能够将代码转译(transpile)为纯 POSIX sh 脚本。它自带一套零依赖的测试系统:在函数前写上 `#[
test
]` 属性,再用 `lic
test
` 一条命令即可运行全部测试并输出通过/失败报告。本文将带你从第一个测试写起,快速掌握 Cotowali 的完整测试流程。 ## 为什么不需要外部测试框架 💡 Cotowali 的核心
剑指offer java版
test
2—字符串空格替换,及
String
String
Buffer和
String
Builder的
区别
标题 :剑指offer java版
test
2—字符串空格替换,及
String
String
Buffer和
String
Builder的
区别
题目:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy 待完善代码: public class Solution { public
String
...
(转载)Java中
String
类replace和replaceAll的
区别
(转载)Java中
String
类replace和replaceAll的
区别
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章