谭浩强C++书中的程序,为什么运行老是不对

谭浩强C++书中的程序,为什么运行老是不对,第1张

主要是C++库函数中有一个std::swap函数,所以你这出现了一点小问题。。

当然可能还有一个原因,你用的是VC60吧

-----------------------------------------------

以上代码完全不变在VS2010中没有错误,在VC60中就是没有交换

----------------------------------------------

#include<iostream>

using namespace std;

void swap(int &,int &);

int main()

{

int i=3,j=50;

swap(i,j);

cout<<"i="<<i<<" "<<"j="<<j<<endl;

return 0;

}

void swap(int &a,int &b)

{

int temp;

temp=a;

a=b+1; //为与std::swap区分

b=temp;

}

--------------------

运行上面这个代码,在什么编译器里都是对的(当然结果是i=51 j=3)

------------------

VC60好像不支持函数内的函数声明,最后放在main函数外肯定没问题,。。

--------------------

#include<iostream>

using namespace std;

//void swap(int &,int &);

int main()

{

int i=3,j=50;

swap(i,j);

cout<<"i="<<i<<" "<<"j="<<j<<endl;

return 0;

}

void swap(int &a,int &b)

{

int temp;

temp=a;

a=b+1;

b=temp;

}

---------------------

使用这段代码,swap实际调用的是库函数std::swap

所以结果是i=50 j=3

------------------------------

好吧,其实刚才我又测试了一下,我估计不错的话又是VC60的问题了。。

看如下代码

#include<iostream>

using namespace std;

int main()

{

int i=3,j=50;

void sw(int &,int &);

sw(i,j);

cout<<"i="<<i<<" "<<"j="<<j<<endl;

return 0;

}

void sw(int &a,int &b)

{

int temp;

temp=a;

a=b;

b=temp;

}

------------

这个也是无论哪个编译器都是对的。。

但是去掉void sw(int &,int &);就编译出错。明显函数没有声明,间接也说明了刚才第二个调用的std::swap

----------------

这里还说明一个问题,VC60的问题不是在函数内部能否声明函数(的确,好像都可以,刚才说错了),而是在于VC60重载swap后的调用机制与其他编译器的不同。

最后说一句,不要再写这种具有二义性的代码了,最好规范一下,可以把谭浩强的书给pass掉了,。看看可以,全当纠错还是可以的。。

#include<stdioh>

void swap(int pa,int pb);

int main()

{

int a=10,b=20;

swap(&a,&b);

printf("a=%d,b=%d\n",a,b);

return 0;

}

void swap(int pa,int pb)

{int t;

t=pa,pa=pb,pb=t;

}

之前不能交换,是因为交换的是形参,而不是实参,实参&a和&b的值没有改变

您好,Oppo的内存扩展是Swap,它是一种虚拟内存技术,可以将物理内存和硬盘上的一部分空间用于模拟内存,以提高系统的内存容量。它可以把内存中的一部分数据和程序暂时存储到硬盘上,以减少内存的使用量,从而腾出更多的内存空间,以满足系统的需求。Oppo的最小内存扩展要求是200字节,最大内存扩展要求是500字节,以满足系统的最佳性能。

以上就是关于谭浩强C++书中的程序,为什么运行老是不对全部的内容,包括:谭浩强C++书中的程序,为什么运行老是不对、改正程序中的错误,并说明swap不能实现两数交换的原因正确的程序输出: a=20,b=10(c语言)、oppo的内存扩展是swap等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10125477.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存