第16讲 指针定义和引用.pptVIP

  • 3
  • 0
  • 约4.44千字
  • 约 21页
  • 2016-04-05 发布于湖北
  • 举报
第22讲 指针定义和引用 一、指针和地址的概念 1、内存与地址 2、指针和指针变量 3、对内存单元的访问方式 二、指针的运算 1、指针变量的定义 2、指针运算符 3、指针变量的初始化 4、指针的运算 三、指针变量作为函数参数 1、存储单元与地址 内存:是以字节为单位的一片存储空间。 存储单元:存放一个字节数据的存储器。 存储单元的内容:存放在存储单元内的数据。 存储单元地址:为了便于访问存储单元,给每个存储单元一个唯一的编号。 一、指针的概念 ··· ··· 2007 2003 2002 2000 x = 10 ; y = ‘a’ ; z = 9.8 ; 2字节 1字节 4字节 a 10 9.8 int x ; char y ; float z ; 例: 2、变量的三要素:名字、类型和值 3、指针和指针变量 指针:就是变量的内存地址,是一个常量。 指针变量:就是存放变量内存地址的变量。 变量与指针变量:当把变量x的地址存入指针变量p后,就说这个指针变量p指向该变量x。 指针变量 p 指向 2000 2000 变量 x 10 4、对内存单元的访问方式: 直接访问方式:通过变量名访问。 间接访问方式:通过指向变量的指针来访问变量。 1、指针变量的定义 格式:类型说明符 *指针变量名1,··· ; 例: int *p1, *p2; 二、指针的运算 说明: 1)指针变量的名字是p1和p2。若写成int *p1,p2; 则p2被定义为整型变量而非指针变量。 2)指针变量的类型是定义时所规定的指向变量的类型,如p1、p2只能指向整型变量,不能指向实型和字符型变量。 3)指针变量的值表示的是它所指向变量的地址。 2、指针运算符与取地址运算符 1)取地址运算符 :“” 作用:取变量的地址。 例如:设有 int i , *p1 ; p1=i ; 注意:不能对常量、表达式进行””运算。 例如:设有 int *p2,*p3; 下面的运算是错误的。 p2=68; p3=( i + 1 ); 运算符返回某个变量的内存地址。而指针变量就可以通过的赋值语句,指向该变量。 例: p1 = i ; /* 将i的地址赋给指针变量p1*/ p2 = chr ; /* 将chr的地址赋给指针变量p2*/ p1 p2 chr i 指针P2指向了字符型变量chr 指针P1指向了整型变量i 作用:取指针所指向的地址空间的内容,即取指针所指向的变量的值。 例1: int i=100, *p1; p1=i; printf(“%d\n”, *p1); //显示:100 2)指针运算符(间接访问运算符):“*” 例2: p1 = i ; /* 指针变量p1指向i */ *p1 = 10 ; /* 把10存入p1所指的变量中 */ 说明:*p1 = 10 ; 等同于语句:i = 10 ; a 3 a p *p 当 p=a 时,注意: (*p)++ 等价于 a++ 将p所指向的变量值加1 *p++ 等价于 *(p++) 先取 *p,然后 p 自加,此时p不再指向a 实例1: 指针的使用 程序运行结果: *p=50, p=xxxx a=100, a=xxxx #include stdio.h main( ) { int a=50,*p; //声明整型指针变量p p=a; // 整型指针变量p指向整型变量a printf(*p=%d, p=%x\n, *p, p ); *p=100; printf(a=%d,a=%x\n,a, a ); } 实例2: 指针运算符的使用 #include stdio.h main( ) { int *p1, *p2, x1, x2 ; scanf( %d%d,x1, x2 ); p1 = x1; p2 = x2; printf(*p1=%d,*p2=%d\n, *p1, *p2 ); p2 = p1 ; printf(*p1=%d,*p2=%d\n, *p1, *p2 ); } 输入: 1

文档评论(0)

1亿VIP精品文档

相关文档