今日主要学习指针
地址和指针
按变量地址存取变量值的方式称为“直接访问”方式
还可以采用另一种称之为“间接访问”的方式,将变量i的地址存放在另一个变量中。
按C语言的规定,可以在程序中定义整型变量、实型变量、字符变量等,也可以定义这样一种特殊的变量,它是存放地址的。
一个变量的地址称为该变量的“指针”,指针是一个地址,而指针变量是存放地址的变量。
变量的指针和指向变量的指针变量
定义一个指针变量
注意
(1)指针变量前面的“*”表示该变量的类型为指针型变量。
(2)在定义指针变量时必须指定基类型
只有整型变量的地址才能放到指向整型变量的指针变量中
指针变量的引用
指针变量作函数参数
函数的参数不仅可以是整型、浮点型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。
数组与指针
一个变量有地址,一个数组包含若于元素,每个数组元素都在内存中占用存储单元它们都有相应的地址。指针变量既然可以指向变量,当然也可以指向数组元素(把某一元素的地址放到一个指针变量中)。所谓数组元素的指针就是数组元素的地址。
指向数组元素的指针
通过指针引用数组元素
假设p已定义为一个指向整型数据的指针变量,并已给它赋了一个整型数组元素的地址,使它指向某一个数组元素。
数组名作函数参数
数组名指的是数组首元素的地址
需要说明的是:C语言调用函数时虚实结合的方法都是采用“值传递”方式,当用变量名作为函数参数时传递的是变量的值,当用数组名作为函数参数时,由于数组名代表的是数组首元素地址,因此传递的值是地址,所以要求形参为指针变量。