- 0
- 0
- 约6.69千字
- 约 37页
- 2018-02-28 发布于浙江
- 举报
[工学]c16-指针的基本概念
知识回顾 本章主要内容 指针的概念 指针变量 数组与指针 字符串与指针 提高部分 指针的应用实例 本讲主要内容 指针的概念 重点、难点 重点 指针变量 指针定义 指针变量作为函数参数 难点 指针定义 指针变量作为函数参数 教学内容 指针的概念 指针的概念 变量与地址 在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型变量占2个单元,浮点变量占4个单元等,在前面已有详细的介绍。为了正确地访问这些内存单元,必须为每个内存单元编上号。根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做 “地址” 。如果在程序中定义了一个变量,在对程序进行编译时,系统就会给这个变量分配内存单元。 指针的概念 指针与指针变量概念 指针:一个变量的地址 指针变量:专门存放变量地址的变量 指针的概念 变量的指针和指向变量的指针变量 变量的指针就是变量的地址。存放变量地址的变量是指针变量。即在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个变量的地址或称为某变量的指针。 为了表示指针变量和它所指向的变量之间的关系,在程序中用“*”符号表示“指向”,例如,i_pointer代表指针变量,而*i_pointer是i_pointer所指向的变量。 因此,下面两个语句作用相同: i=3; *i_pointer=3; 指针的概念 指针的概念 教课内容 指针的概念 指针变量 定义一个指针变量 对指针变量的定义包括三个内容: (1) 指针类型说明,即定义变量为一个指针变量; (2) 指针变量名; (3) 变量值(指针)所指向的变量的数据类型。 指针变量 指针变量 实例16-1: 通过指针变量访问整型变量 指针变量 例如: int *p1; 表示p1是一个指针变量,它的值是某个整型变量的地址。或者说p1指向一个整型变量。至于p1究竟指向哪一个整型变量,应由向p1赋予的地址来决定。 再如: int *p2; /*p2是指向整型变量的指针变量*/ float *p3; /*p3是指向浮点变量的指针变量*/ char *p4; /*p4是指向字符变量的指针变量*/ 应该注意的是,一个指针变量只能指向同类型的变量,如P3 只能指向浮点变量,不能时而指向一个浮点变量,时而又指向一个字符变量。 指针变量 指针变量的初始化 一般形式: [存储类型] 数据类型 *指针名=初始地址值 指针变量 实例分析1(1) 和 * 指针变量 指针变量 实例分析2 在定义指针变量时必须指定基类型。 指针变量 #include stdio.h void main () { float a; int *pointer_1,*pointer_2; a=100; pointer_1=a; pointer_2=100; printf(“%d,%d\n”,*pointer_1,*pointer_2); } 指针变量 补充: 用NULL给指针变量赋空值 int *p; p = NULL; /*等同于 p = 0; 或 p = \0; */ 执行后,p为空指针,不指向任何有效数据。 使用NULL时,必须在程序中加上文件包含 #include stdio.h。 NULL可以赋值给指向任何类型的指针变量 指针变量 指针变量 指针变量 指针变量 指针变量 指针变量 #includestdio.h void swap(int *p1,int *p2) { int *p; p=p1; p1=p2; p2=p; } void main() { int a,b; int *pointer_1,*pointer_2; scanf(“%d,%d”,a,b); pointer_1=a; pointer_2=b; if(ab) swap(pointer_1,pointer_2); printf(“\n%d,%d\n”,a,b);} 指针变量 本讲总结 怎样定义指针变量? 指针变量是直接访问还是间接访问? 指针变量的赋值? 上机实验 实验16-1:用指针指向两个变量,通过指针运算选出值小的那个数.(不使用函数和使用函数两种方法) 实验16-2:若有以下程序: #include stdio.h void sub(int x,int y,int *z) { *z=y-x; } main() { int a,b,c; sub(10,5,a); sub (7,a,b); sub (a,b,c
原创力文档

文档评论(0)