CHAl 第七讲 指针 北大青鸟 P-
第七讲 指针
本节学习目标 指针指针与指针变量 ■指针的声明与使用 指针与数组间的关系 动态分配内存 北大青鸟 P-
本节学习目标 ◼ 指针指针与指针变量 ◼ 指针的声明与使用 ◼ 指针与数组间的关系 ◼ 动态分配内存
课前复习 维数组的定义与使用 1二维数组的定义与使用 ■字符数组的使用 北大青鸟 P-
课前复习 ◼ 一维数组的定义与使用 ◼ 二维数组的定义与使用 ◼ 字符数组的使用
课前练习 1,若有以下定义语句 tl10,1,2345,673910} 以下描错误的是( A)a数组在内存中占44个字节 aB)a数组的最后一个元素是a[10 C)a数组的第一个元素是aO D)以上定义语句给a数组所赋初始值 是整数,因此不能正确赋初始值 北大青鸟 P-
课前练习 ◼ 1.若有以下定义语句: ◼ float a[11]={0,1,2,3,4,5,6,7,8,9,10} ◼ 以下描述错误的是() ◼ A)a数组在内存中占44个字节. ◼ B) a数组的最后一个元素是a[10]. ◼ C) a数组的第一个元素是a[0] ◼ D)以上定义语句给a数组所赋初始值 是整数,因此不能正确赋初始值.
数据的存储机制 口内存地址 变量地址 内存中存储单元的 ■一系统标识变量在内 编号 存中的起始位置。 北大青鸟 P-
数据的存储机制 ◼ 内存地址 ◼ —内存中存储单元的 编号。 ◼ 变量地址 ◼ —系统标识变量在内 存中的起始位置
数据的存储机制(续) 直接访 间接访问 #include yoid maino void maino int a b sum=0 int a bsum a printf("请输入a和b的值: printf("请输入a和b的值: scanf( %od, %od",&a, &b); scanf("%od, %od", &a, &b) p1=&ap_2=&b; sum=a+b ■Sum=*p1+*p2 printf("sum=%od\n", sum) printf(" sum=%d n",sum); 北大青鸟 P-
数据的存储机制(续) ◼ 直接访问 ◼ #include ◼ void main() ◼ { ◼ int a,b,sum; ◼ printf("请输入a和b的值: "); ◼ scanf("%d,%d",&a,&b); ◼ sum=a+b; ◼ printf("sum=%d\n",sum); ◼ } ◼ 间接访问 ◼ #include ◼ void main() ◼ { ◼ int a,b,sum=0; ◼ int *p_1,*p_2; ◼ printf("请输入a和b的值: "); ◼ scanf("%d,%d",&a,&b); ◼ p_1=&a;p_2=&b; ◼ sum=*p_1+*p_2; ◼ printf("sum=%d\n",sum); ◼ }
指针的功能 方便一个函数向另一个函数的过渡。 ■能通过指针的移动来改变指针所指向的数 据,不需要去移动变量或数组 可以实现动态内存的更新。 北大青鸟 P-
指针的功能 ◼ 方便一个函数向另一个函数的过渡。 ◼ 能通过指针的移动来改变指针所指向的数 据,不需要去移动变量或数组。 ◼ 可以实现动态内存的更新
指针与指针变量 什么是指针 指针变量 变量的内存地址。 ■用来存放变量地址的 变量。 变量值 56 1000 指针 1000 (内存地址) a→变量名b指针变量 北大青鸟 P-
指针与指针变量 ◼ 什么是指针? ◼ 变量的内存地址。 ◼ 指针变量 ◼ 用来存放变量地址的 变量。 56 a 变量名 1000 (内存地址) 变量值 1000 b 指针 指针变量
指针声明 ■格式 数据类型*指针变量名; 北大青鸟 P-
指针声明 ◼ 格式 数据类型 *指针变量名;
基类型:指针所指 向的数据类型。决 声明注意事项饰动 “*表示声明的指针变量,不是代表指针运 算符。 *”前必须指定数据类型(基类型),其 主要功能是指指针所指向对象的数据类型 北大青鸟 P-
声明注意事项 ◼ “*”表示声明的指针变量,不是代表指针运 算符。 ◼ “*”前必须指定数据类型(基类型),其 主要功能是指指针所指向对象的数据类型。 基类型:指针所指 向的数据类型。决 定了指针每次移动 的步长