int *p;
1.p为变量的名字,int * 表示的是p变量存放的是int类型变量的地址。
2.p 表示的是以p的内容为地址的变量
3. int *p 应该理解为:p为变量名,p变量的数据类型为 int *类型;
而 int * 类型就是存放int 类型变量地址的一个类型。
int i = 0;
*p = i; // error, 这里没有初始化的话*p 相当于一个野指针,指向垃圾值。
1.因此要养成个好习惯,定义了个变量就马上初始化(=0或其他值)
2.指针变量 记得定义完就初始化(或用一变量使其指向)
p = &i ; or int *p = NULL;
p = &i ;
// 正确的定义方法!
1. p保存了 i 的地址,因此 p 指向 i ;
2.但 p 不是 i ,i 也不是 p;因此改变 i 的值不会影响p的值,
改变 p 的值不会影响 i。
3.如果一个指针变量指向了某个普通变量
则 *指针变量 完全等同于 普通变量 (因为普通变量没地址)
例:
如果p是个指针变量,存放的是普通变量i的地址
则 p 指向了普通变量 i
*p 就与 i 等价 可以随意互换!
4. *p 就是以p的内容为地址的变量
1.指针就是地址,地址就指针(* 与 &取地址符为逆运算)
2.地址就是内存单元的编号(指针只是个值,只是个内存单元的编号)
3.指针变量是存放地址的变量
4.指针和指针变量是两个不同的概念。
//备注:本文是基于郝斌老师视频讲解总结出来的笔记,方便自己看以及和他人分享
//希望能有更多小伙伴一起学习c程序,一起感受编程给我们带来的乐趣吧。
C语言指针的基础知识
最新推荐文章于 2024-07-25 15:44:47 发布