- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言chapter7
主讲:吕元长 * 地址和指针的概念 凡存放在内存中的程序和数据都有一个地址。一个变量的地址称为该变量的指针。 用来存放一个变量地址的变量称为指针变量。 附注:①变量的“直接引用”方式:通过变量名来直接引用变量。 ② 变量的“间接引用”方式:将变量的地址存放在一个指针变量中,然后通过存放变量地址的指针变量来引用变量 第7章 指针 变量 地址 内容 int x; x = 3; printf(“%d”, x); x 2001 3 px 3000 2001 直接访问: 通过变量名直接访问地址 间接访问: 把变量的地址放到另一变量中,使用时先找到后者的地址,从中取出前者的地址 指针变量 地址 另一变量的地址 地址和指针的概念 凡存放在内存中的程序和数据都有一个地址。一个变量的地址称为该变量的指针。 用来存放一个变量地址的变量称为指针变量。 附注:①变量的“直接引用”方式:通过变量名来直接引用变量。 ② 变量的“间接引用”方式:将变量的地址存放在一个指针变量中,然后通过存放变量地址的指针变量来引用变量 变量 地址 内容 int x; x = 3; printf(“%d”, x); x 2001 3 px 3000 2001 指针变量:存放地址的变量 指针变量 地址 另一变量的地址 某个变量的地址 指向 指向 * 指针运算符(间接访问运算符) int *p, a = 3; p=a; 把 a 的地址赋给 p,即 p 指向 a 指针变量的定义: 类型名 *指针变量名; 附注: ① 变量名前面的“ * ”是一个说明符,用来说明该变量是指针变量,这个“ * ”是不能省略的,但是它不是变量名的一部分。 ② 类型名表示指针变量所指向的变量的类型,而且只能指向这种类型的变量。 ③ 指针变量可以进行初始化。 指针变量的赋值 方法一:使用取地址运算符。指针变量名=变量名;例如:int *p,a; p=a; 方法二:利用同类型指针变量赋值。例如:int *p,*q,a; p=a;q=p; 方法三:给指针变量赋空值(NULL)。例如:int *p;p= NULL;(NULL在头文件stdio.h中已经定义为符号常量,等于整数0)。 附注:① 取地址运算符的运算对象必须是一个变量。当一个变量的地址赋给指针变量时,该变量的类型必须与指针变量指向类型一致。 ② 指针变量是用来存放地址的,不要给指针变量赋常数值。 ③ 指针变量没有指向确定地址前,不要对他所指的对象赋值。例如:int *p;指针变量p没有指向确定地址前,赋值语句scanf(“%d”, p);或*p=3;都是错误的。 a 3 a p *p *p表示p所指向的变量 a 指针的间接引用 /* 程序L7_1.C功能:通过两种方式引用变量 */ #include stdio.h void main() { int a, b; int *p; /* 定义指针变量p */ p = b; /* 将变量b的地址存放在变量p中 */ a = 3; /* 直接引用变量a */ *p = 5; /* 间接引用变量b */ printf( a = %d, b = %d\n, a, b ); } 运行结果:a = 3, b = 5 /* 程序L7_2.C */ #includestdio.h void main( ) { int a = 3, *p; p = a; printf(“%d,%d\n”, a, *p); scanf(“%d”, a); printf(“%d,%d\n”, a, *p); scanf(“%d”, p); printf(“%d,%d\n”, a, *p); *p = 10; printf(“%d,%d\n”, a, *p); } 指针变量的运算 指针变量通过指针运算符*引用它所指向的存储单元的值。例如:若有赋值语句 p=a;,则 *p等于a、p等于a。 附注:① 运算符和*都是单目运算符,优先级为2级,结合方向为从右至左。 ② 指针运算符*的运算对象只能是指针或地址。 ③ 指针变量可以做加减整数运算、自增自减运算(移动操作),同类型的指针变量可以做比较运算、赋值运算和减法运算。 a 3 a p *p 输入 5 7 5, 5 3, 3 7, 7 10, 10 /* 程序L7_3.C */ #includestdio.h void main( ) { int a, b; in
文档评论(0)