指针及其应用 指针变量的引用 指针变量必须先赋值,再使用 自标要求 指针变量赋值有两种方法: int i,*p=&i; 1、将某个已经定义了的普通变量的首地址赋给 讲课提纲 指针变量; 2、调用C语言的动态内存分配函数或运算符为指 讲课内容 针变量在内存的动态存储区找到一个可用区域。 例 int *p; 课后作业 但 p=4000;
目标要求 课后作业 讲课提纲 讲课内容 指针及其应用 指针变量的引用 指针变量必须先赋值,再使用 例 int *p; 但 p=4000; 不合法 指针变量赋值有两种方法: 1、将某个已经定义了的普通变量的首地址赋给 指针变量; 2、调用C语言的动态内存分配函数或运算符为指 针变量在内存的动态存储区找到一个可用区域。 int i,*p=&i;
指针变量必须先赋值,再使用 main( { int i=10: 自标 int *p 2000 整型变量 *p=i, 2002 10 printf(%d',*p)方 2004 讲课尉 2006 危险! 2008 一指针变量p M 200A 随机子 讲课 例 main( 200C int i=10,k; int *p; 课后 p-&k; *p=i, printf(%d,*p)月
目标要求 课后作业 讲课提纲 讲课内容 例 main( ) { int i=10; int *p; *p=i; printf(“%d”,*p); } 危险! 例 main( ) { int i=10,k; int *p; p=&k; *p=i; printf(“%d”,*p); } . . 2000 2008 200C 200A 整型变量i 10 指针变量p 2002 2004 2006 随机 指针变量必须先赋值,再使用
判断是真9是服9 应在类型相 同的指针变 量之间赋值 个指针变量不能 int i; 指向与其类型不同 int 的变量: *pi float *pi float *qi p=&i; p=q; int i,*p; int *p; p=&i; p=100; 指针变量只 我是真的, 存放地址! 你猜对了吗?
目标要求 课后作业 讲课提纲 讲课内容 int i,*p; p=&i; int *p; float *q; p=q; int i; float *p; p=&i; int *p; p=100; 指针变量只 存放地址! 一个指针变量不能 指向与其类型不同 的变量! 我是真的, 你猜对了吗? 应在类型相 同的指针变 量之间赋值
指针及其应用 ● 指向变量的指针 例:指针变量的基本用法: 自标要求 #include〈stdio.h> void main() {int x,y; //定义两个普通变量 讲课提纲 int *p1,*p2; /定义两个指针变量 p1=&x; x=100; 讲课内容 *p1 printf ("n x=%d,*p1=%d "x,*p1); p2=&y; ◆*p2 运行结果: 课后作业 *p2=200; printf("\n y=%d,*p2=%d "y,*p2) x=100,*p1=100 y=200,*p2=200
目标要求 课后作业 讲课提纲 讲课内容 指针及其应用 指向变量的指针 例: 指针变量的基本用法: #include <stdio.h> void main() { int x , y ; //定义两个普通变量 int *p1, *p2; //定义两个指针变量 p1=&x; x=100; printf("\n x=%d, *p1=%d ",x,*p1); p2=&y; *p2=200; printf("\n y=%d, *p2=%d ",y,*p2); } 运行结果: x=100,*p1=100 y=200,*p2=200 x *p1 y *p2
0●●。● 。直接访问与间接访问 ■直接访问:按变量地址存取变量值 ■间接访问:通过存放变量地址的变量去访问变量 . 例 i=3; 直接访问 2000 整型变量i 2002 204 2004 2006 2008 一变量i pointer 200A 2000 指针变量 200C 例 *i pointer=20: 间接访问
目标要求 课后作业 讲课提纲 讲课内容 ◼ 直接访问与间接访问 ◼ 直接访问:按变量地址存取变量值 ◼ 间接访问:通过存放变量地址的变量去访问变量 例 i=3; -直接访问 指针变量 . . 2000 2008 200C 200A 整型变量i 10 变量i_pointer 2002 2004 2006 2000 3 例 *i_pointer=20; -间接访问 20