- 15
- 0
- 约4.76千字
- 约 9页
- 2017-03-09 发布于重庆
- 举报
实验8-1指针基本概念
实验8-1 指针基本概念
【】
指针变量:C语言中允许将地址作为数据值,用一个变量来存放。存放指针的变量称为指针变量。
指针变量使用三步骤
声明:一般形式如:类型说明符 *指针变量名;
初始化:一般形式如:指针变量 变量;
访问数据:一般形式如:*指针变量
指针运算符
间接访问运算符“*”
取地址运算符“”
printf和scanf是否使用指针对比:假定有int x,y;int *px x,*py y;
不使用指针的输入输出语句:
scanf “%d %d”,x,y ;
printf “%d %d”,x,y ;
使用指针的输入输出语句:
scanf “%d %d”,px,py ;
printf “%d %d”,*px,*py ;
打印地址信息:
使用%p占位符
使用%x占位符
【】#include
int main int data 100;
//第一种指针变量定义方式:声明与初始化分两步完成
int * pd; //声明指针变量
pd data; //初始化指针变量,注意细节,data变量必须之前声明过
//下面是第二种指针变量定义方式:声明与初始化一步完成
//int * pd data; //声明指针变量,同时初始化指针变量
printf Direct access: data %d\n, data ; //变量的直接访问
printf Indirect access: data %d\n,*pd ; //变量的间接访问
printf The address of data is %p\n, data ;//变量的地址输出
printf The address of data is %p\n,pd ; //指针变量的输出
return 0; 程序运行效果如下:
例题2,两数求和。
#include
int func1 int a, int b ;
void func2 int a, int b, int * pr ;
int main int x, y;
int result 0;
printf please enter two integers, like x y: ;
scanf %d %d,x,y ;
//函数调用
result func1 x, y ;
printf func1: %d+%d %d\n,x, y, result ;
result 0;
//函数调用,前两个实参传递值,实参三传递了地址
func2 x,y,result ;
printf func2: %d+%d %d\n,x, y, result ; //函数定义,注意,形参均约定为值传递
int func1 int a, int b int r;
r a+b;
return r; //函数定义,注意,前两个形参约定为值传递,形参三约定为地址传递,也称为输出参数
void func2 int a, int b,int * pr //注意均使用了*pr间接访问的形式,将计算结果放入该地址指向的存储空间
*pr a + b; 程序运行效果如下:
例题3,指针的基本运算。
#include
int main int i, array[5] 12, 23, 34, 45, 56 ;
int * p;
p array; //数组名array即为数组元素起始地址,用于初始化指针变量
for i 0; i 5; i++
//*p++意为先间接访问数组元素*p,然后p++即移动指针指向下一个数组元素
printf %4d, *p++ ;
return 0; 程序运行效果如下:
【】
’\0’值也为0,可以用NULL表示空字符吗?
A:绝不可以。NULL用于表示空指针。一些编译器会据此把NULL定义为 void * 0。这样,把指针类型的NULL用作空字符就违反了标准C的规则。因此,任何情况下,都需要注意避免引起混乱。
Q:给指针变量赋值时,要注意什么问题?
A:给指针变量赋值时,要注意三方面的问题:第一,如将指针赋值为NULL,则称该指针为空指针或者零指针。它不指向任何变量,亦不指向存储地址为零的存储单元,而是一种特殊的状态。在实际编程中,常用符号常量NULL来代表。第二,由于指针也是变量,允许指针的值是变化的,即,改指向其他变量。第三,指针赋值时要注意存储类型的一致,以免发生类型不能匹配的情况。
Q:指针变量的地址就是指针存放的地址吗?
A:不是。如int x 5; int * p x;中,指针变量p是一个变量,系统要为它分配存储空间(通常为4个字节),该存储空间的起始地址即为指针变量的地址,即p。而指针变量存放的地址,即,p中存放的变量x的
您可能关注的文档
- 实验2UML实验.doc
- 实验2基本数据类型和表达式.doc
- 实验2岩屑录井综合柱状图.doc
- 实验2抽样定理和脉冲调幅(PAM).doc
- 实验2常用网络命令.doc
- 实验2熔敷金属中扩散氢测定.doc
- 实验2网络常用命令使用.doc
- 实验2过电流保护实验.doc
- 实验2迭代与分形.doc
- 实验2高频功率放大与发射实验.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 2025统编版小学道德与法治三年级下册教学计划、教学设计附教学反思(附目录).docx
- 2026年廉政答案考试题库(考试直接用).docx VIP
- 虚列费用培训课件.ppt VIP
- Z20名校联盟(浙江省名校新高考研究联盟)2026届高三第二次联考日语含答案.doc VIP
- 煤矿2026年机电工作计划方案.docx VIP
- 企业合规法律服务指引(湖北省律师协会法律顾问专委会).pdf VIP
- Qu系列说明书QU16&QU24(加强版).pdf VIP
- 数学与生活:一元二次方程的起源.pptx VIP
- 事业单位d类综合应用能力必背知识点.pdf VIP
- (课堂用)TheFutureoftheEnglish(课件.ppt VIP
原创力文档

文档评论(0)