1.指针的自增
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;
int main() {
int ages[] = {21,51,26,36,41,25,36};
int len = sizeof(ages) / sizeof(ages[0]);
//使用数组的方式来访问数组
for (int i = 0; i < len; i++) {
printf("第%d个学员的年龄是:%d\n",i+1,ages[i]);
}
//打印数组的地址和第一个成员的地址
printf("ages的地址:0x%p,第一个元素的地址:0x%p\n",ages,&ages[0]);
int* p = ages;
//访问第一个元素
printf("数组的第一个元素:%d\n",*p); //*p表示读取所指指针的变量的值,即ages的第一个值
//访问第二个元素
//p++; //即p=p+1;
//printf("数组的第二个元素:%d,第二个元素的地址:0x%p\n",*p,p);
for (int i = 0; i < len; i++) {
printf("数组的第%d个的年龄是:%d,地址是0x%p\n", i + 1, *p,p);
p++;
}
printf("-----------------------\n");
char ch[4] = {'a','b','c','d'};
char* cp = ch;
for (int i = 0; i < 4; i++) {
printf("数组的第%d个的年龄是:%c,地址是0x%p\n", i + 1, *cp, cp);
cp++;
}//总结:p++的概念是在p当前地址的基础上,自增p对应类型的大小,也就是说 p = p+ 1*(sizeof(类型))
system("pause");
return 0;
}
2.指针的自减
#include <iostream>
#include <string>
#include <windows.h>
/*
让用户输入一个字符串,然后反向输出,不能改变原来的字符串!
如:"12345"逆转成"54321"输出
*/
using namespace std;
int main() {
char input[128];
int len;
char tmp;
scanf_s("%s",input,128);
len = strlen(input);
/*
//方法1 交换
for (int i = 0; i < len / 2; i++) {
tmp = input[i];
input[i] = input[len-i-1];
input[len - i - 1] = tmp;
}
for (int i = 0; i < len; i++) {
printf("%c",input[i]);
}
printf("\n"); */
/*
//第二种方法
for (int i = 0; i < len; i++) {
printf("%c",input[len-i-1]);
}
printf("\n"); */
//第三种方法
char* p = &input[len - 1];
for (int i = 0; i < len; i++) {
printf("%c",*p--);
}
printf("\n");
system("pause");
return 0;
}