下载此文档

项目六 用指针优化学生成绩排名.ppt


文档分类:IT计算机 | 页数:约45页 举报非法文档有奖
1/45
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/45 下载此文档
文档列表 文档介绍
项目六用指针优化学生成绩排名
项目要求
一个班有40位学生参加了期终考试(考了三门课),请用指针优化学生成绩排名。即用指针实现数组的输入输出以及数组的排序(在函数中进行)。
项目分析
要用指针优化学生成绩排名,第一必须要了解指针的概念、引用;
第二必须会用指针实现数组的输入输出;
第三在函数中用指针实现数组的排序,然后调用此函数。
为了在介绍的时候条理清晰,所以分解成5个任务。
任务1 了解指针
一、问题情景
一个班进行了一次考试,现要将几个学生的成绩输入,用指针的方式输出。
知识点:
1、指针的概念;
2、指针的引用;
(一)地址的概念与取地址运算
地址——内存单元的编号(在计算机中,把内存区划 分为一个一个的存储单元,每个单元为一个字节,它 们都有一个编号,这个编号就是内存地址)
但&不能施加在常量或表达式前。
如:int a = 3 ;
&a 就是变量在内存中的地址。
可以用printf(“%x \n”, &a); 看出其地址。
注意:
这个地址并不是始终不变的,这是由机器和操作系统来安排的,我们无法预先知道。
取地址运算——&
三、相关知识
(二)指针的概念
——一个变量在内存中存储时的地址,
它并不占内存中的存储空间。
简单地说,指针就是地址。二者是同一个概念的两种说法。只不过指针更形象一些,就像一个针一样,可以指向某个地方。
三、相关知识
概念
既然存储在内存中的各种变量都有一个地址,我们能否这样设想:定义某种变量,让这个变量的值始终等于某个变量的地址,如同某个房间号、门牌号一样?回答是肯定的。我们把这种存放某种变量地址的变量称为指针变量。
….
35
10
a
b
240ff52
240ff56
p
240ff52
q
240ff56
因此,在C语言中,将地址形象化地称为指针
(三)指针变量
三、相关知识
说明
a. * 是定义指针变量的标志,不可丢掉
b. 数据类型是指针变量所指向的变量的类型
c. 指针变量定义后,其值是不确定的
1、定义
[存储类型] 数据类型* 指针变量名
如: int *p, a=3; int *q, b=5;
指针变量的定义和赋值
三、相关知识
2、赋值:可以进行初始化,也可以使用赋值语句
(1)初始化: int a, *s=&a;
(2)赋值语句
int a, *s;
s=&a;
(3)注意:只能用同类型变量的地址进行赋值!
如定义:int *s; float f; 则 s=&f;是非法的。
三、相关知识
1、&——取地址运算
如: int *p , i=3, j=5;
p=&i; /*让p其指向变量i*/
2、*——指针运算,则代表取指针所指向的单元的内容。
区分:*运算符在不同场合的作用,
编译器能够根据上下文环境判别*的作用。int a,b,c;
int *p; (*表示定义指针)
p = &a;
*p = 100; (*表示指针运算符)
c = a * b; (*表示乘法运算符)
指针变量的引用
三、相关知识
#include <>
void main()
{
int a,b,*pointer_1,*pointer_2;
a=100,b=200;
pointer_1=&a;
pointer_2=&b;
printf("%d,%d\n",a,*pointer_1);
printf("%d,%d\n",b,*pointer_2);
}
【例6-1】指针与地址的应用
main( ) { int *p1, *p2, a1, a2; scanf(“%d %d”, &a1, &a2 ); p1 =&a1; p2=&a2; printf(“%d , %d \n”, *p1, *p2); p2 = p1;
printf(“%d , %d \n”, *p1, *p2);
}
定义指针变量
指针赋值,
把a1的地址给p1
指针运算,
p1指针所指向的变量a1的内容
直接赋值,
把p1指针的地址给p2,
即p2也指向a1
若输入“3 4”,则输出为什么?

项目六 用指针优化学生成绩排名 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数45
  • 收藏数0 收藏
  • 顶次数0
  • 上传人12344
  • 文件大小0 KB
  • 时间2014-08-26