总结
P++/P–的概念,就是p当前地址的基础上,增加/减小p对应类型字节大小。
实际运用1
#include <stdio.h>
#include <stdlib.h>
int main(void){
int ages[] = {21,13,24,56,43,24,8};
int len = sizeof(ages)/sizeof(ages[0]);//数组的大小/整形的大小7x4/4=7
//1. 使用数组的方式来访问数组
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]);
//2. 使用指针,访问第一个元素
int *p = ages;
for(int j = 0;j < len; j++){
printf("数组的第%d个元素:%d,地址:0x%p\n",j+1,*p,p);
p++;
}
printf("---------------------------\n");
char ch[4] ={'q','w','e','r'};
char *cp = ch;
for(int k = 0;k < 4; k++){
printf("数组的第%d个元素:%d,地址:0x%p\n",k+1,*cp,cp);
cp++;
}
system("pause");
return 0;
}
运行结果
实际运用2
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/**
*让用户输入一个字符串,然后反向输出,注意不能改变原来的字符串
*如:“12345”逆转成“54321”输出
*/
int main(void){
char input[128];
int len;
char tmp;
scanf_s("%s",input,128);//用户输入不超过128个字节
len = strlen(input);
//方法1,写一个for,从最后一个输出
/* for(int i=0;i<len;i++){
printf("%c",input[len-i-1]);
}*/
//方法2,使用指针
char *p=&input[len-1];
for(int i = 0;i<len;i++){
printf("%c",*p--);//先p--再取地址对应的值
// p--;
}
system("pause");
return 0;
}
运行结果2
版权声明:本文为ZENGZISUZI原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。