西华师范大学 数学与信息学院 地址 ●程序中定义的任何变量,在编译时都会在内 存中分配一个确定的地址单元。 ●地址是存放信息数据的存储单元编码。 ●C语言规定: 取地址运算符“&用来获取变量的地址 数组的地址可以用数组名表示(或第1个 元素的地址) 函数名可以表示函数的地址
!"#$ % &'() *+,-./01* "234/"256789: ;< ="53467="
西华师范大学 数学与信息学院 指针 ●指针是C语言中的一种数据类型,是专门用来 处理地址的;也可以说:指针是包含另一个变 量地址的变量。 ●为了区别于其它类型的变量,指针变量用星号 *来表示。 ●例如,int*p;,ip是一个整形的指针变量。 ●指针运算符‘*’具有取地址内容的作用。 ●例如,x=5;ip=&x; (8x)即取x地址中值5
>?&'@"#ABCD/0 EFGH34I)>?JKL MNOPQRSAB >? /TU .V067 WX G YZ>? >?+,-.V[\*]^/ WX G _* `
西华师范大学 数学与信息学院 地址和指针的关系 ●用来存放地址的变量就叫作指针变量。 ●设intx,*ip;100x 1002 p 当定义了整型变量x和指针ip后,系统分配两个 存储单元1001002 ●执行x=3; 1000X 3 ●执行ip=&x 100×310028xip ●执行*1p=5; 1000 5110028xip ●结果见C070.C
/0 ab^>? c def ghdi G jNYB gk>?dilmno $pqqqkpqqrG st guvG st diuwgxy st hdi uxzG {|}~qqq~
西华师范大学 数学与信息学院 C0700.C include stdio. h main 0 int *ip, x=3 printf(x=%d\n",x) 1p=&x; printf(x=%d, *ip=%d\n", x, *ip 米ip=5 printf(x=%d, *ip=%d\n,x, *ip)
!"!!# OPQRSTUVWXYZUP[\X ]^PQ_` aWW PQZ bPcdef) cgPQZh_XefiUjQXde`) Pcfke) cgPQZh_XefiUWdWbPcfiUjQXdedbPc`) bPcfl) cgPQZh_XefiUWdWbPcfiUjQXdedbPc`) m
西华师范大学 数学与信息学院 二、指针型变量的定义 般格式: 类型描述符*指针变量名表; ●举例: int float *array, char *s1*s2 00g
$%&' () ) AB - >? 56G W)