1.单词逆置
例:this is a book
转化为:book a is this
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
char arr[32]="this is a book";
char *p1=arr;
int len=strlen(arr);
char *p2=arr+len-1;
char *p3=arr;
char temp;
//1.整体逆置
while(p1<p2){
temp=*p1;
*p1=*p2;
*p2=temp;
p1++;
p2--;
}
//2.每个单词内部逆置
while (*p3!='\0'){
p1=p3;
while(*p1==' '){
p1++;
}
p2=p1;
while(*p2!= ' ' && *p2 !='\0'){
p2++;
}
p3=p2;
p2--;
while(p1<p2){
temp=*p1;
*p1=*p2;
*p2=temp;
p1++;
p2--;
}
}
puts(arr);
return 0;
}
重点
1.变量、一级指针、二级指针的等价
a <==> *p <==>**q
&a <==> p <==>*q
2.const修饰变量时,表示变量不允许被修改(只读)
3.const修饰指针:
写法1:const int *p;
写法2:int const *p;
写法3:int * const p;
写法4:const int * const p;
判断的方式:
看 const 和 * 的相对位置关系 如果const在 *的左边 表示修饰的是 *p,表示不允许通过p修改 指针指向的空间的内容,但是p允许修改,表示p的指向可以修改 如:写法 1和2
如果const在 *的右边 表示修饰的是 p,表示p不允许修改,也就是说 指针的指向不允许修改,但是 *p可以修改,允许通过指针p修改指向 的空间的内容,如写法3
对于写法4,表示指针的指向不能修改,也不能通过p修改指向的空间的内容