1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;
/*************说明实参求值的顺序***************/
#include<iostream>
using namespace std;
int ncomp(int i,int j)
{
if(i>j)return 1;
if(i==j)return 0;
return -1;
}
int main()
{
int k=2;
int n=ncomp(k,++k);
cout<<n;
return 0;
}
/*这题答案为零,证明系统按右向左顺序求实参的值,又如:
int i = 10; printf("%d %d %d\n", ++i, i, --i);
问输出的结果是什么.解答说按规定,printf的参数从右向左执行,
原因是参数一般为从右往左压栈的.先从栈顶取数据,
所以从右向左求值并压栈是有他的道理的**********/
/*************比较两个数大小,输出较大的数**************/
#include<iostream>
using namespace std;
int max(int u,int v)
{
int w;
w=u>v? u:v;
return w;
}
int main()
{
int a,b,c;
cout<<"please input two numbers: ";
cin>>a>>b;
c=max(a,b);
cout<<"a= "<<a<<" b= "<<b<<endl;
cout<<"max is "<<c<<endl;
return 0;
}
/*************用引用调用的方法实现两个数据互换**************/
#include<iostream>
using namespace std;
void swap(int &u, int &v);
int main()
{
int a=3;
int b=4;
cout<<"a = "<<a<<"\tb = "<<b<<endl;
swap(a,b);
cout<<"a = "<<a<<"\tb = "<<b<<endl;
return 0;
}
void swap(int &u,int &v)
{
int temp=v;
v=u;
u=temp;
}
/*****引用调用是把变量的地址传进去,函数内对引用的操作就是对
函数外部变量的操作。指针调用其实是把指针变量又拷贝了一份给函
数,只有在函数内部修改指针所指向的值才会对起外部指针产生影响,
要是把传进来的指针的地址变了,对函数外面指针指向的值没有影响。
引用和指针不要混淆了****************************************/
/*********void类型中return语句的作用**************/
#include<iostream>
using namespace std;
void display(int x,float y)
{
cout<<x<<" "<<y;
return; //这