改变局部变量的值
当需要根据某些条件来决定是否改变局部变量的值的时候
#include "stdio.h"
void fun(int *pt){
if(*pt > 90) {
*pt = 1000;
}
}
int main(void){
int a = 100;
printf("a:%d",a);
fun(&a);
printf("a:%d",a);
}
用于操作访问数组
#include "stdio.h"
#define arrSize 5
int main(void){
int arr[arrSize] = { 10,20,30,40,50 };
int *pt;
pt = &arr[0]; // 等价于pt = arr
// 注意这里数组不能越界访问,否则会解析到无效数据
for(int i = 0; i < arrSize;i++){
printf("%d\n",*pt);
pt++;
}
return 0;
}
字符指针
#include "stdio.h"
#define arrSize 5
int main(void){
char str[6] = "ABC";
char *ptr = "123";
printf("str = %s \n",str);
printf("ptr = %s \n",ptr);
return 0;
}
指针数组
#include "stdio.h"
#define arrSize 5
int main(void){
// 字符指针数组,每个元素都存储指向字符串的首地址
char *arr[5] = {
"amy",
"jack",
"joe",
};
printf("%s\n",arr[0]); // amy
printf("%s\n",arr[1]); // jack
printf("%s\n",arr[2]); // joe
}