#include <iostream>
using namespace std;
int func(int i1,int* pi21,int* &pi22,int &ri3,char* str)
{
cout << "------------------------------------\n";
cout << "i1,*pi21,*pi22,ri3,str = " << i1 << " " << *pi21 << " " << *pi22 << " " << ri3
<< " " << str << endl;
i1++;
pi21++;
pi22++;
ri3++;
(*str)++;
cout << "----------------------------------------\n" << endl;
cout << "i1,*pi21,*pi22,ri3,str = " << i1 << " " << *pi21 << " " << *pi22 << " " << ri3
<< " " << str << endl;
i1++;
(*pi21)++;
(*pi22)++;
ri3++;
str++;
cout << "----------------------------------------\n" << endl;
cout << "i1,*pi21,*pi22,ri3,str = " << i1 << " " << *pi21 << " " << *pi22 << " " << ri3
<< " " << str << endl;
return i1;
}
int main()
{
int i = 1,a[2] = {21,202},*pa = a,b[2] = {21,202},*pb = b,r = 3456;
char s[]= "ABCDEFG";
cout << "---------------------------------\n";
cout << "i,*pa,*pb,r,s = " << i << " " << *pa << " " << *pb << " " << r << " " << s << endl;
cout << "a[0],a[1],b[0],b[1] = " << a[0] << " " << a[1] << " " << b[0]
<< " " << b[1] << endl;
int tmp = func(i,pa,pb,r,s);
cout << "----------------------------------\n";
cout << "i,*pa,*pb,r,s = " << i << " " << *pa << " " << *pb << " " << r << " " << s << endl;
cout << "a[0],a[1],b[0],b[1] = " << a[0] << " " << a[1] << " " << b[0]
<< " " << b[1] << endl;
cout << "tmp = " << tmp << endl;
return 0;
}
#include <iostream>
using namespace std;
int func(int i1,int** pi21,int* &pi22,int &ri3,char* str)
{
cout << "------------------------------------\n";
cout << "i1,*pi21,*pi22,ri3,str = " << i1 << " " << *pi21 << " " << *pi22 << " " << ri3
<< " " << str << endl;
i1++;
(*pi21)++;
pi22++;
ri3++;
(*str)++;
cout << "----------------------------------------\n" << endl;
cout << "i1,*pi21,*pi22,ri3,str = " << i1 << " " << *pi21 << " " << *pi22 << " " << ri3
<< " " << str << endl;
i1++;
(**pi21)++;
(*pi22)++;
ri3++;
str++;
cout << "----------------------------------------\n" << endl;
cout << "i1,*pi21,*pi22,ri3,str = " << i1 << " " << *pi21 << " " << *pi22 << " " << ri3
<< " " << str << endl;
return i1;
}
int main()
{
int i = 1,a[2] = {21,202},*pa = a,b[2] = {21,202},*pb = b,r = 3456;
char s[]= "ABCDEFG";
cout << "---------------------------------\n";
cout << "i,*pa,*pb,r,s = " << i << " " << *pa << " " << *pb << " " << r << " " << s << endl;
cout << "a[0],a[1],b[0],b[1] = " << a[0] << " " << a[1] << " " << b[0]
<< " " << b[1] << endl;
int tmp = func(i,&pa,pb,r,s);
cout << "----------------------------------\n";
cout << "i,*pa,*pb,r,s = " << i << " " << *pa << " " << *pb << " " << r << " " << s << endl;
cout << "a[0],a[1],b[0],b[1] = " << a[0] << " " << a[1] << " " << b[0]
<< " " << b[1] << endl;
cout << "tmp = " << tmp << endl;
return 0;
}
以上两种情况的输出结果不同。
本文通过两个不同的C++示例程序展示了不同类型指针的使用方法及它们如何影响原始变量和引用。探讨了基本指针、指向指针的指针及引用的变化,并分析了这些变化对数组元素的影响。

被折叠的 条评论
为什么被折叠?



