本节学习目标 指针指针与指针变量 指针的声明与使用 指针与数组间的关系 动态分配内存 北大青鸟 P-
本节学习目标 • 指针指针与指针变量 • 指针的声明与使用 • 指针与数组间的关系 • 动态分配内存
课前练习 若有以下定义语句 float a[1l={0,1,2,3,4,5,6,7,8,9,10 以下描述错误的是() A)a数组在内存中占44个字节 ·B)a数组的最后一个元素是a[0 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 #include void maino void mair int a b sum=0 int a, b, su; int*p_1,*p_2; printi("请输入a和b的值: printi("请输入a和b的值: scanf("%od, %od", &a, &b) scanf("%od, %od", &a, &b) p 1=&a; p 2=&b sum=a+b sum=*p 1+*p 2 printf sum od\n", sum) printf("sum=% 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-
指针的功能 • 方便一个函数向另一个函数的过渡。 • 能通过指针的移动来改变指针所指向的 数据,不需要去移动变量或数组。 • 可以实现动态内存的更新