项目1 指针返回绝对值
#include <iostream>
using namespace std;
int abs(int a, int *i);
int main()
{
int a,i;
cin >> a;
abs(a, &i);
cout << i<<endl;
system("pause");
return 0;
}
int abs(int a, int *i)
{
if (a > 0)
*i = a;
else
*i = -a;
return *i; //实测,返回*i 和 a结果一样
}
项目2 倒着输出一个一维数组
#include <iostream>
using namespace std;
int main()
{
int real,i,a[100],*p,n;
cout << "输入数组的个数=";
cin >> real;
for (i = 0; i < real; i++)
{
cin >> a[i];
}
cout << "------------------------------------"<<endl;
p = &a[0];//等价于p = a; 不能是p = &a;
for (n = real; n >0; n--)
{
cout << *(p+n-1) << endl; //引用a[i]的值,可用a[i] 、 p[i] 、 *(p+i) 、 *(a+i)
}
system("pause");
return 0;
}
项目3 用指针写回文的判定
#include <iostream>
#include<cstring>
using namespace std;
const int M = 20;
int main()
{
int i;
char u[M];
char *p=u;
cout << "请输入单词:" << endl;
cin >> u;
//----------------------------
for (i = 0; i < strlen(u); i++)
{
if (*p != *(p + strlen(u) - 1))
cout<<"不是回文"<<endl; break;
}
for (i = 0; i < strlen(u); i++)
{
if ((i==strlen(u) -1)&&*p == *(p + strlen(u) - 1))
cout << "是回文" << endl;
}
system("pause");
return 0;
}