指针的基础使用回顾一
#include <iostream>
/**指针的基础使用回顾一*/
using namespace std;
//交换函数里的*才真正访问到了a,b的空间,并对其空间里的值进行了交换操作
//程序①
void exchange(int *a,int *b)
{
int c;
c=*a;
*a=*b;
*b=c;
//交换了a和b的地址
}
int main()
{
int a,b;
a=5,b=6;
cout<<a<<'\t'<<b<<endl;
cout<<&a<<'\t'<<&b<<endl;
exchange(&a,&b);
cout<<a<<'\t'<<b<<endl;
cout<<&a<<'\t'<<&b<<endl;
//仔细看以下交换程序
//分析运行结果可知,交换的地址实际上也是副本,故实际地址值并没有交换
//程序②
//void exchange(int *a,int *b)
//{
// int *c;
// c=a;
// a=b;
// b=c;
// //交换了a和b的地址
//}
//
//int main()
//{
// int a,b;
// a=5,b=6;
// cout<<a<<'\t'<<b<<endl;
// cout<<&a<<'\t'<<&b<<endl;
// exchange(&a,&b);
// cout<<a<<'\t'<<b<<endl;
// cout<<&a<<'\t'<<&b<<endl;
//程序③
//int main()
//{
// int a=1;
// int *p=&a;
// int *ptr=NULL;
// cout<<a<<endl;
// cout<<"a的地址是:"<<&a<<endl;
// cout<<"指针的值是:"<<p<<endl;
// cout<<"指针所指向空间的值是:"<<*p<<endl;
// cout<<"指针的指针是:"<<&p<<endl;
// //空指针所指空间的值:错误
// //cout<<"ptr所指向空间的值是:"<<*ptr<<endl;
// cout<<"ptr的值:"<<ptr<<endl;
// cout<<"ptr指针的指针是:"<<&ptr<<endl;
// cout<<"int类型所占空间为:"<<sizeof(int)<<endl;
return 0;
}
运行对比结果
程序①:
程序②:
程序③:
(ps:对比截图会对指针更加了解)