17、指针

1、小案例
1.1、代码
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
void changeValue(int a)
{
a += 90;
printf("a=%d\n",a);
}
int main()
{
int a = 10;
changeValue(a);
printf("a=%d\n",a);
return 0;
}
1.2、运行结果

运行结果

1.3、内存图

内存图

1.4、总结

无法通过changeValue函数达到修改实参变量a的值,原因是形参和实参的内存地址不是同一个。那么如果有个数据类型能够操作变量内存地址,或许就能够解决我们的问题?

2、什么是指针

指针是用来存放变量地址,其作用就是能够根据一个地址值,访问对应的存储空间的内容

3、定义格式
1
数据类型 *变量名
4、指针使用
4.1、源代码
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
void changeValue(int *a)
{
*a += 90;
printf("a=%d\n",*a);
}
int main()
{
int a = 10;
changeValue(&a);
printf("a=%d\n",a);
return 0;
}
4.2、运行结果

运行结果

4.3、内存图

运行结果

4.4、总结
  • 数据类型 *变量名这样的格式来定义指针
  • *变量名来获取被操作的变量的内存地址