1 / 23
文档名称:

C语言教案8-指针ppt课件.ppt

格式:ppt   大小:177KB   页数:23页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言教案8-指针ppt课件.ppt

上传人:相惜 2021/4/19 文件大小:177 KB

下载得到文件列表

C语言教案8-指针ppt课件.ppt

相关文档

文档介绍

文档介绍:C 语 言 程 序 设 计
第 8 章 指针
1
最新版整理ppt
地址和指针
在计算机中,内存是用来存储程序和数据的部件。为了便于存储,通常把内存划分成许多个存储单元,并且对存储单元进行编号,存储单元的编号称为地址。地址通常以字节为单位进行编址。
在C语言中地址是指数据在内存中存放的起始位置,如:
变量(整型、浮点型、字符型、数组元素)的地址 用 & 表示
数组的地址 用数组名表示。数组的地址就是数组中第一个元素的地址
字符串常量的地址 直接写出字符串,表示字符串的第一个字符的地址
函数的地址 用函数名表示。函数的地址就是函数的入口地址
指针:存放地址的变量叫指针,也叫指针变量。指针变量的值是另一变量的地址,指针变量的值可以改变。指针变量的内容是所指变量的值。
地址是一个常量如&i 、数组名如a( 或&a[0] ),其值不能改变。
2
最新版整理ppt
指针变量
指针变量的说明方式:
<类型说明符> *<标识符>
例:int *ptr,i=5; i是一个整型变量,ptr是一个指向整型变量的指针
ptr=&i; &i是变量i的地址(指针常量),ptr是一个指针(指针变量)
指针变量的运算符:
* 取指针变量所指的内容
& 取变量的地址
上例中,*ptr==i &i==ptr &*ptr==ptr *&i==i
注意: * 出现在C程序的不同场合具有不同的含义。
3
最新版整理ppt
例8-1
#include<>
void main()
{ int a=5,b=10,c=15; int *pa,*pb,*pc;
pa=&a; pb=&b; pc=&c;
printf("%d\t%d\t%d\n",a,b,c);
printf("%d\t%d\t%d\n",*pa,*pb,*pc);
printf("%d\t%d\t%d\n",*&a,*&b,*&c);
printf("%x\t%x\t%x\n",pa,pb,pc);
printf("%x\t%x\t%x\n",&a,&b,&c);
printf("%x\t%x\t%x\n",&*pa,&*pb,&*pc);
printf("%x\t%x\t%x\n",&pa,&pb,&pc);
}
4
最新版整理ppt
指针作为函数参数 -比较下面的例子
#include<>
void exchange(int x,int y)
{ int temp;
temp=x; x=y; y=temp;
}
void main()
{ int a=5,b=8;
exchange(a,b);
printf("a=%d\tb=%d",a,b);
}
运行结果:a=5 b=8
#include<>
void exchange(int *x,int *y)
{ int temp;
temp=*x; *x=*y; *y=temp;
}
void main()
{ int a=5,b=8;
exchange(&a,&b);
printf("a=%d\tb=%d",a,b);
}
运行结果: a=8 b=5
5
最新版整理ppt
指针与数组
在C语言中,数组名是指针常量,它代表的是数组的首地址,也是数组第一个元素的地址。
设有: int data[10];
则:data==&data[0]
data+i==&data[i]
*(data+i)==data[i]
例:8-3
data →
data[0]
data+1 →
data[1]

data+i →
data[i]
6
最新版整理ppt
例:使用指针作为形参和实参
#include<>
#include<>
int min(int *p,int n);
main()
{ static int a[7]={-1,9,7,3,-100,0,8};
clrscr(); printf("minvalue=%d",min(a,7));
}
int min(int *p,int n)
{ int i,minv; minv=*p;
for(i=1;i<n;i++) if(minv>*(p+i)) minv=*(p+i);
return minv;
}
数组名做为实参,传递数组的首地址(地址常量)
指针变量做为形参,