DC-7:指针(1)

来源:互联网 发布:bmp和jpg的区别 知乎 编辑:程序博客网 时间:2024/06/06 03:46
指针注意事项:
1、指针这个词很形象,指针就是地址,指向这个地址的。我们常用的变量例如int a,char ch, 都只是内存的助记符,弄清楚内存存值得本质, 就可以很方便的理解指针。
2、&为取地址符,用于获取变量的地址。*称为指针运算符,用来取得某个地址上的数据。输出用%p,或者%#x。(x大小写会输出大小写两种不同形式相同的值)。
3、对于一个指针首先应该明白这个变量的类型是指针,其次再问这个指针指向什么类型的数据。基本表示为 
int  *p = a; 
p = &a;
4、假设有一个 int 类型的变量 a,pa 是指向它的指针,那么*&a和&*pa分别是什么意思呢?
 *&a可以理解为*(&a),&a表示取变量 a 的地址(等价于 pa),*(&a)表示取这个地址上的数据(等价于 *pa),绕来绕去,又回到了原点,*&a仍然等价于 a。
 &*pa可以理解为&(*pa),*pa表示取得 pa 指向的数据(等价于 a),&(*pa)表示数据的地址(等价于 &a),所以&*pa等价于 pa。
5、对于
int a = 10;
int *p =&a;
printf("%d",*p);
会画内存模型图。
6、数组名代表数组首个元素的地址。区别a,&a[0],&a.

7、数组指针是一个指针。指针数组是一个数组。

8、数组指针与数组的区别。

  1. 长度不等。

  2.数组名是一个常量(只能代表首个元素的地址),不能改变。

原创粉丝点击