9.1.2变量的地址、变量的值每个变量占用一段内存单元,变量的值放在该内存单元中。变量的地址::系统分配给变量的内存单元的起始地址一日确定之后不能修改。变量的值:系统分配给变量的内存单元中的数据--程序执行过程中可以修改。说明:系统为不同类型的变量分配的空间大小也不同。int整型变量一一4个字节。1double双精度型变量一一8个字节。char字符型变量一一1个字节。C
① 每个变量占用一段内存单元,变量的值放在该内存单元中。 ② 变量的地址:系统分配给变量的内存单元的起始地址-一旦 确定之后不能修改。 ③ 变量的值:系统分配给变量的内存单元中的数据-程序执行 过程中可以修改。 ④ 说明:系统为不同类型的变量分配的空间大小也不同。 ① int整型变量——4个字节。 ② double双精度型变量——8个字节。 ③ char字符型变量——1个字节。 6 9.1.2 变量的地址、变量的值
9.2指针变量(定义、引用、作函数参数)--P179指针变量是一种特殊的变量一存放另一个变量的地址(指向另一个变量)类型说明符*指针变量名:指针变量的定义9.2.1指针变量所指向*表示定义指针变量合法标识符变量的数据类型不是*乘法运算注意1:指针变量必须先定义后使用。例1:intll定义指向int型变量的指针变量p1、p2*p1,*p2;①ll定义指向double型变量的指针变量p3double*p3;②char*p4;l/定义指向char型变量的指针变量p4③注意2:指针变量只能指向它定义时约定的类型的变量
9.2.1 指针变量的定义 注意1:指针变量必须先定义后使用。 例1: ① int *p1, *p2; //定义指向int型变量的指针变量p1、p2 ② double *p3; //定义指向double型变量的指针变量p3 ③ char *p4; //定义指向char型变量的指针变量p4 注意2:指针变量只能指向它定义时约定的类型的变量。 类型说明符 *指针变量名; *表示定义指针变量, 合法标识符 不是 * 乘法运算符 指针变量所指向 变量的数据类型 7 9.2 指针变量 (定义、引用、作函数参数)- P179 Ø 指针变量是一种特殊的变量—存放另一个变量的地址 -(指向另一个变量)
9.2.2指针变量的使用(&、*)指针变量常用的运算符取变量的地址取指针所指向变量的内容*&......PmD←整型变量m20001010200020012000200420022003<←变量p200420002885指针变量D&m--变量m的地址(2000(2000)p---指针变量,p的值是地址值*p----指针p所指向的变量m,*p的值是m的值-数据10。&p---指针变量p自已占用内存的地址(2004)8
1、指针变量常用的运算符 ( &、 *) 2000 2004 2006 2 5 2001 2002 2003 8 9.2.2 指针变量的使用
2、指针变量的赋值方式::指针变量定义时初始化赋值例1:inta,*p=&a;//指针变量p的初值是变量a的地址注意1:a的声明一定要在p的声明之前。注意2:int *p=NULL;/ /p不指向任何内存位置。NULL是标准库里定义的一个符号常量,值为0例2:intm;*p=&m;//p的初值是&m-m的地址int//g的初值是p的值&m一m的地址int *q =p;注意3:使用未初始化的指针变量是非常危险的。①int *p;②*p=100;I因为p存的是随机数,随机数表示的地址是否有效????儿结果无法预测!!!
2、 1)指针变量定义时初始化赋值: 例1:int a, *p=&a; //指针变量p的初值是变量a的地址 注意1:a的声明一定要在p的声明之前。 注意2: int *p=NULL; //p不指向任何内存位置。 // NULL是标准库里定义的一个符号常量,值为0 注意3:使用未初始化的指针变量是非常危险的。 ① int *p; ② *p=100; // 因为p存的是随机数,随机数表示的地址是否有效???? // 结果无法预测!!!
2、指针变量的赋值201赋值语句给指针变量赋值.←整型变量a200020例:1)int a=20;2int *p, *q;......0..03p=&a;l/给指针变量p赋值←指针变量p30002000000q=p;I/给指针变量q赋值.....4←一指针变量g50002000...10
10