如何解决如果简单地传递变量,为什么传递指针函数有效,请指导
我正在使用C ++指针进行练习,并尝试了不同的事情,后来才知道这件事:
变量1和2的地址没有它们存储整数的地址,但是函数swap需要两个指针,但这有效...
但是它仅应使用&或指针给出答案。为什么会发生这种情况,如果这是有效的,那么我们称之为什么?
请引导我!!!!
完整代码为:
#include<iostream>
using namespace std;
void swap (int *,int *);
int main()
{
int number_1 =0;
int number_2=0;
cout<<"Please Enter The First Number : ";
cin>>number_1;
cout<<"Please Enter The Second Number : ";
cin>>number_2;
int *ptr_number_1=&number_1;
int *ptr_number_2=&number_2;
cout<<"Before The Function Call Numbers Are : "<<endl;
cout<<"Number 1 Contains : " << number_1<<endl;
cout<<"Number 2 Contains : " << number_2<<endl;
cout<<"=================================="<<endl;
cout<<"Calling the Function with the direct variables : "<<endl;
cout<<"After The Function Call Numbers Are : "<<endl;
swap (number_1,number_2);
cout<<"Number 1 Contains : " << number_1<<endl;
cout<<"Number 2 Contains : " << number_2<<endl;
cout<<endl;
cout<<"=================================="<<endl;
cout<<"=================================="<<endl;
cout<<"Calling the Function with the Reference Operator : "<<endl;
cout<<"After The Function Call Numbers Are : "<<endl;
swap (&number_1,&number_2);
cout<<"Number 1 Contains : " << number_1<<endl;
cout<<"Number 2 Contains : " << number_2<<endl;
cout<<endl;
cout<<"=================================="<<endl;
cout<<"=================================="<<endl;
cout<<"Calling the Function with the Pointers : "<<endl;
cout<<"After The Function Call Numbers Are : "<<endl;
swap (ptr_number_1,ptr_number_2);
cout<<"Number 1 Contains : " << number_1<<endl;
cout<<"Number 2 Contains : " << number_2<<endl;
cout<<endl;
cout<<"=================================="<<endl;
cout<<endl;
return 0;
}
void swap (int *number_1,int *number_2){
int temp_number_variable =0;
temp_number_variable = *number_2;
*number_2 = *number_1;
*number_1 = temp_number_variable;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。