C语言第七节 指针

1、指针定义

  指针,指针变量,此变量存储的内容是内存中某块内存的首地址,也就是内存编号;

  我们通过指针间接访问到内存中存储的值,程序中需要的内容是值,而指针,也就是地址是一个位置信息;

  指针变量所占内存大小只与操作系统的位数有关,64位操作系统下,指针变量所占内存大小为8个字节,而内存编号对应的内存单元为一个字节,字节是内存的最小单位;

  既然指针也是变量,那么声明指针变量的语法格式是:

    数据类型   变量名  初值;

 

2、指针的定义格式

   int *p = NULL;

  (int *)是指针变量的类型,表示 p是整形指针,p可以从首地址向下取四个字节大小的空间来获取数据;

  p为变量名;

  NULL为初始值,恒等于0;

 

3、* 的含义

    1> 如果*出现在声明指针变量时,此时的*仅仅是一个标识符,代表变量是一个指针变量;

    2> 如果*与指针变量单独出现,比如*p,此时代表取值,取到p指向内存区域中存储的值;

 

4、指针做算数运算

  注意两点:

  1> + - 决定了偏移量是我往内存地址高位还是低位移动,+ 往高位,- 往低位;

      2> 往高位还是低位移动多少个字节,是指针类型决定的,类型占多少位就偏移多少个字节。

 

5、结构体指针

  既指向结构体的指针;

  在访问成员是可以有两种方法:

    第一种是先获取到结构体变量,通过.操作符来访问;

    第二种是直接通过结构体指针,指向结构体中的某个成员,既用 -> 来指向。

 

6、重点记忆

     1> 指针类型决定通过指针取值时的偏移量,既从记录地址往高位取几位,得到的存储数据从高位往低位读取,最后得到的结果会因为类型不符发生失真,所以指针类型应与指向变量相符;

     2> 打印有关指针变量时,要注意得到的如果是地址时会默认打印对应地址上的数据。

 

原文地址:https://www.cnblogs.com/hyl2012/p/5212792.html