第10章指针 指针一C语言的精华
第10章 指针 指针----C语言的精华
10.1地址和指针的概念 内存用户数据区 指针就是地址。有变量的、数组的、函数 的、字符串的指针等 、内存的访问方式 1、直接访问 2000 如:i=2,j=6,k=9,通过变量i、j、k来2||。 访问存储单元。 2004 2、间接访问 如变量i,不知道其值及地址,而只知道302000 它的地址放在3010、3011中,因此可通过 存放地址的单元找到变量i的值,此为间接 访问。 对间接访问,可定义一变量存放地址,如 定义 ipointer,赋值 ipointer=&i
10 . 1 地址和指针的概念 指针就是地址。有变量的、数组的、函数 的、字符串的指针等。 一、内存的访问方式 1、直接访问 如:i=2, j=6, k=9 , 通过变量i、j、k 来 访问存储单元。 2、间接访问 如变量 i,不知道其值及地址,而只知道 它的地址放在3010、3011中,因此可通过 存放地址的单元找到变量 i 的值,此为间接 访问。 对间接访问,可定义一变量存放地址,如 定义ipointer, 赋值 ipointer=&i 2000 2002 2004 3010 i j k i_p 3 6 9 2000 : : : 内存用户数据区 : :
指针的概念 个变量的地址称为该变量的“指针” i的地址是2000,则地址2000是变量工的指针。 存放地址的变量叫“指针变量”,指针变量存放地址。 ipointer存放的是变量的地址。 i变量 ipointer指针变量 ipointer=&i
二、指针的概念 一个变量的地址称为该变量的“指针”。 i的地址是2000,则地址2000是变量I的指针。 存放地址的变量叫“指针变量”,指针变量存放地址。 ipointer存放的是变量I的地址。 i 变量 ipointer 指针变量 ipointer=&i
10.2变量的指针和指向变量的指针变量 、指针变量的定义 般形式:类型标识符*变量名 如:int*p char *p2i float *p3; 说明:(1)*表示指针型变量,意为“指向…的指针” (2)指针变量有确定的指向的数据类型。 思考:指针变量存放的是一个地址,为什么定义时需要指定类型?
10 . 2 变量的指针和指向变量的指针变量 一、指针变量的定义 一般形式: 类型标识符 *变量名 如:int *p1; char *p2; float *p3; 说明: (1) * 表示指针型变量,意为“指向…..的指针” (2) 指针变量有确定的指向的数据类型。 思考:指针变量存放的是一个地址,为什么定义时需要指定类型?
、指针变量的引用 1、给指针变量赋值(赋变量的地址) 如:p1=& 般不直接赋数值。 *p1的意义为p1所指向的变量i *p与等价,i=3,则*1也为3 注意:p1是地址变量,而*1是非地址变量,与等价 “*”:为指针运算符或叫指向运算符、间接运算符,为 单目运算符。 PI 2000 2000
二、指针变量的引用 1、给指针变量赋值 (赋变量的地址) 如: p1=&i 一般不直接赋数值。 *p1的意义为p1所指向的变量i; *p与i等价,i=3, 则*p1也为3。 注意:p1是地址变量, 而*p 1是非地址变量,与i等价。 “*”:为指针运算符或叫指向运算符、间接运算符,为 单目运算符。 2000 3 P1 *p1 i 2000