网 纽 指针是啥 復旦大争 FUDAN UNIVERST
指针是啥
一、指针是啥 冬什么是指针? 名 假设Z同学是我们班作业做得最好的同学,大家都喜欢参考他的作业。 >Z==作业的标准答案 >可以把Z看作是一个作业类型的普通变量… 某天A同学找Z:"把作业借我参考一下?”周X回答:"标准答案在 Y同学那里,你找他吧” >Z==“标准答案在Y那里” >~这时候Z相当于一个指向别人(Y)的链接, >他就变成了一个指针!
一、指针是啥 ❖ 什么是指针? ❖ 假设Z同学是我们班作业做得最好的同学,大家都喜欢参考他的作业。 ➢ Z==作业的标准答案 ➢ 可以把Z看作是一个作业类型的普通变量…… ❖ 某天A同学找Z:“把作业借我参考一下?”周X回答:“标准答案在 Y同学那里,你找他吧” ➢ Z==“标准答案在Y那里” ➢ 这时候Z相当于一个指向别人(Y)的链接, ➢ 他就变成了一个指针!
一、指针是啥 ~指针(Point)实际上就是一个链接! ~指针变量中保存的内容是一个内存地址。 冬例: int y=10; int *z=&y; ÷指针z的内容就是y所在的内存地址。 >“z,标准答案是多少?” >~z说:你去问y吧! >y说:标准答案是10!
一、指针是啥 ❖ 指针(Point)实际上就是一个链接! ➢ 指针变量中保存的内容是一个内存地址。 ❖ 例: int y=10; int *z=&y; ❖ 指针z的内容就是y所在的内存地址。 ➢ “z,标准答案是多少?” ➢ z说:你去问y吧! ➢ y说:标准答案是10!
一、指针是啥 int y=10; int *z=&y; 内存地址1008 10 y z指向y 内存地址1004 1008 Z
一、指针是啥 int y=10; int *z=&y; 10 y 内存地址1008 1008 z 内存地址1004 z指向y
网 纽 指针基本运算 復旦大争 FUDAN UNIVERST
指针基本运算
二、指针基本运算 要学好指针,必须熟练掌握指针相关的运算。(接下来会提问!)如: 指针的定义方法:在变量标识符前加* int*p,a,b;/定义了一个整型指针p和一个普通变量a ÷&运算符:用在普通变量前,取其地址 p=&a;lp指向a H *运算符:用在指针变量前,取其指向的内存 b=*p;/把p指向的内存中的整数值赋给整形变量b。 *p=30;/将30赋给p指向的内存中 对于指针p,*p相当于一个普通变量! 见01 points.c(使用调试单步执行查看结果)
二、指针基本运算 ❖ 要学好指针,必须熟练掌握指针相关的运算。(接下来会提问!)如: ❖ 指针的定义方法:在变量标识符前加* int *p,a,b; //定义了一个整型指针p和一个普通变量a ❖ &运算符:用在普通变量前,取其地址 p=&a; //p指向a ❖ *运算符:用在指针变量前,取其指向的内存 b=*p; //把p指向的内存中的整数值赋给整形变量b。 *p=30;//将30赋给p指向的内存中 ❖ 对于指针p, *p相当于一个普通变量! ❖ 见01points.c(使用调试单步执行查看结果)
2.1&与*运算 int a,b,*p; 内存地址1008 ? a 内存地址1004 3 b 内存地址1000 ? p
2.1 &与*运算 int a,b,*p; ? a 内存地址1008 ? b 内存地址1004 ? p 内存地址1000
2.1&与*运算 int a,b,*p; 内存地址1008 ? a=10; a 内存地址1004 3 b 内存地址1000 ? p
2.1 &与*运算 int a,b,*p; a=10; ? a 内存地址1008 ? b 内存地址1004 ? p 内存地址1000
2.1&与*运算 int a,b,*p; 内存地址1008 10 a=10; a 内存地址1004 3 b 内存地址1000 ? p
2.1 &与*运算 int a,b,*p; a=10; 10 a 内存地址1008 ? b 内存地址1004 ? p 内存地址1000
2.1&与*运算 int a,b,*p; a=10; 内存地址1008 10 p=&a; a 内存地址1004 3 b 内存地址1000 ? p
2.1 &与*运算 int a,b,*p; a=10; p=&a; 10 a 内存地址1008 ? b 内存地址1004 ? p 内存地址1000