当前位置:文档之家› C语言程序设计基础教程 7.3、指针变量的应用

C语言程序设计基础教程 7.3、指针变量的应用


1. 提出任务(交换房间) 2.任务分析(记录地址) 3. 相关知识(指针应用) 4. 任务完成与总结
C语言
指针变量的初始化
一般形式: 数据类型 *指针名=初始地址值; 例 int i; int *p=&i; 变量必须已说明过 类型应一致 例 int i; int *p=&i; int *q=p;
p
2018 变量i 3 *p

int *p=&i; int i;
i &i
i=3;
*p p
*p=3
用已初始化指针变量作初值
2000
10
2004 2008 随机 2012 …... 指针变量p
C语言程序设计 –指针变量的应用
C语言
ห้องสมุดไป่ตู้
指针的特点
• 指针变量的命名规则和其他变量的命名规则一样
• 指针不能与现有变量同名 • 指针可存放 C 语言中的任何基本数据类型、数组和其他所有高级 数据结构的地址 • 若指针已声明为指向某种类型数据的地址,则它不能用于存储其他
int *p1,*p2;
float *q ; char *t;
2、指针变量名是p1,p2 ,不是*p1,*p2 3、指针变量只能指向定义时所规定类型的变量 4、指针变量定义后,变量值不确定,应用前必须先赋值 5、指针值为NULL的指针称为空指针,这意味着,不指向任何地址
C语言程序设计 –指针变量的应用
类型数据的地址
• 应为指针指定一个地址后,才能在语句中使用指针
C语言程序设计 –指针变量的应用
C语言
例子
内存 #include <stdio.h> ptr_var var void main() { 2018 100 int var = 100; 2018 2035 int *ptr_var; ptr_var = &var; 指针 printf(" var 的值是: %d", var); printf("\n var 的内存地址是: %x", &var); printf("\n 指针 ptr_var 的地址是: %x\n", &ptr_var); printf("\n var 的值是: %d", *ptr_var); printf("\n var 的地址是: %x\n", ptr_var); } var的值是:100
C语言程序设计 –指针变量的应用
C语言
指针变量引用
int num, *p; p = &num;
*p=100;
内存
num 100 2018 p
2018
指针
C语言程序设计 –指针变量的应用
C语言
指针变量引用
危险!
指针变量必须初始化才能引用
…... 整型变量i
例 main( ) { int i=10; int *p; *p=i; printf(“%d”,*p); } 例 main( ) { int i=10,k; int *p; p=&k; *p=i; printf(“%d”,*p); }
var 的内存地址是:2018 指针ptr_var的地址是:2035 var的值是:100 var的地址是:2018
C语言程序设计 –指针变量的应用
C语言
任务实现
#include <stdio.h> void main() { int x,y,*px,*py,t; printf("请输入要交换房间号:"); scanf("%d,%d",&x,&y); px=&x; py=&y; t=*px; *px=*py; *py=t; printf("第一间房=%d\n第二间房=%d\n",*px,*py); }
指针变量的应用
C语言程序设计
C语言程序设计 –指针变量的应用
C语言
本次任务
利用指针变量交换两
个数的大小。
C语言程序设计 –指针变量的应用
C语言
合法标识符
指针变量的声明
一般形式:
数据类型 *指针名;
表示定义指针变量 不是‘*’运算符
指针的目标变量的数据类型 注意:
例:
1、int *p1, *p2; 与 int *p1, p2;
相关主题