1、指针的定义
指针:代表这个指针变量保存的是内存地址;
获取内存地址的方法:&i
int *p = &i;
这样就可以获取到i的内存地址;
int i= 0;
int j = 1;
int* p = &i;
int *q = &j;
printf("%p",p);
printf("%q",q);
输出结果为:
连个内存地址是连续的;
这个指针也可以当做为整数类型;
1.2 指针的使用
指针可以用来访问和操作变量
#include <stdio.h>
int change(int *p);
int main(int argc, char **argv) {
int i= 6;
int* p = &i;
printf("原先i的值为%d\n",i);
change(p);
printf("新的i的值为%d\n",i);
return 0;
}
void change(int *p){
printf("i的内存地址为%p\n",p);
//只用指针访问变量的值
printf("使用指针访问i变量的值%d",*p);
//使用指针修改变量的值
*p = 30;
}
1.3 指针的常见应用场景
1、函数中需要返回两个值
#include <stdio.h>
//定义原型函数
void swap(int *x, int *y);
//定义main函数
int main(void){
int m,n;
m = 12;
n = 15;
//调用swap函数,交换m和n的值
swap(&m, &n);
printf("m = %d; n = %d\n", m,n);
return 0;
}
void swap(int *x, int *y){
int temp = *x;
*x = *y;
*y = temp;
}
如果想返回多个变量,可以将多个变量传入函数,然后通过地址修改变量的值;