例8-1利用指针模拟寻找保险箱 密码的过程 If I know the name of the variable i can get i it's value by name: 911 If know the address of the variable 获取密码的两种方法 is: 12ff7C, then I also can get it's value by int main(void) address: 911 int key=911;/*变量key用于存放密码值911*/ int*p addr=NULL;/*变量 p addr是整型指针变量*/ p_addr =&key /将key的地址赋给 p addr* /通过变量key输出密码值* printf(" the key is: %dn", key) /通过变量名key输出密码值 printf("If I know the name of the variable, I can get it's value by name %dIn", key) /通过变量key的地址来输出密码值 printf( if I know the address of the variable is: %x, then I also can get it's value by address: %dn",p addr, *p_addr); return 0:
例8-1 利用指针模拟寻找保险箱 密码的过程 获取密码的两种方法 int main(void) { int key = 911; /* 变量key用于存放密码值911 */ int *p_addr = NULL; /* 变量p_addr是整型指针变量 */ p_addr = &key; /* 将key的地址赋给p_addr*/ /* 通过变量key输出密码值*/ printf("The key is: %d\n", key); /* 通过变量名key输出密码值*/ printf("If I know the name of the variable, I can get it’s value by name: %d\n ", key); /* 通过变量key的地址来输出密码值*/ printf("If I know the address of the variable is: %x, then I also can get it’s value by address: %d\n",p_addr, *p_addr); return 0; } If I know the name of the variable, I can get it’s value by name: 911 If I know the address of the variable is:12ff7c, then I also can get it’s value by address: 911
812地址和指针一指针的概念 内存单元 地址内容变量 直接访问:通过变量名访问 1000 20 1002 intx=20,y=1,z=155; 1004 155 xyz printf(%d°,x;) 间接访问:通过另一个变量访问 把变量的地址放到另一变量中 2000L1000 p 使用时先找到后者 2002 再从中取出前者的地址 地址指针变量
8.1.2 地址和指针-指针的概念 内存单元 地址 内容 变量 int x = 20, y = 1, z = 155; printf("%d", x;) 直接访问:通过变量名访问 间接访问:通过另一个变量访问 把变量的地址放到另一变量中 使用时先找到后者 再从中取出前者的地址 1000 20 x 1002 1 y 1004 155 z 2000 1000 p 2002 地址 指针变量
指针 内存单元 intx=20,y=1,z=155; 地址内容变量 printf"‰d",x) 1000 20 x某个变量的地址 1002 1004 155 指向 2000100p指针变量:存放地址的变量 2002 地址指针变量
指针 内存单元 地址 内容 变量 int x = 20, y = 1, z = 155; printf("%d", x;) 1000 20 x 1002 1 y 1004 155 z 2000 1000 p 2002 地址 指针变量 指针变量:存放地址的变量 某个变量的地址 指向
813指针变量的定义 类型名指针变量名 指针声明符 指针变量所指向的变量的类型 int * ρ是整型指针,指向整型变量 float *fp 印p是浮点型指针,指向浮点型变量 char *cp cp是字符型指针,指向字符型变量
指针变量所指向的变量的类型 int *p; p 是整型指针,指向整型变量 float *fp; fp 是浮点型指针,指向浮点型变量 char *cp; cp 是字符型指针,指向字符型变量 类型名 * 指针变量名 指针声明符 8.1.3 指针变量的定义
指针变量的定义 类型名*指针变量名 int * p 口指针变量名是p,不是*p 口*是指针声明符 int k, *p1, *p2, 等价于: int k: int *p1; int *p2 口定义多个指针变量时,每一个指针变量 前面都必须加上*
指针变量的定义 类型名 * 指针变量名 int * p; 指针变量名是 p,不是*p * 是指针声明符 int k, *p1, *p2; 等价于: int k; int *p1; int *p2; 定义多个指针变量时,每一个指针变量 前面都必须加上*