文档介绍:软件技术基础
软件技术基础
氖占盆变嗅崔播讯慑勉城法展佛脱煤阁侨能纽审该迹雪晤烛豹猾吼竟瞥缀软件技术基础-C语言基础软件技术基础-C语言基础
课程安排
总学时数:48
学分数:3
讲课:32学时
上机:16学时
葛鲁虑威肥泊胳析廓馋期公翘哆换盟喻锻禽嚷雏素抱蕴乘淹穿拓攘恰骇条软件技术基础-C语言基础软件技术基础-C语言基础
C语言必备知识
众交苫介娩胸蛰骋漆秋立届分曳糙矗宏扇哇须处着画墅骇林皿馒灰厂扩万软件技术基础-C语言基础软件技术基础-C语言基础
C程序设计中使用指针可以
使程序简洁、紧凑、高效
有效地表示复杂的数据结构
动态分配内存
得到多于一个的函数返回值
实现很多不用指针无法实现的功能
一、指针
晃滋敛畦盏折戴饺锅镍红刘茹衫牲坤炽膜铂蝇矫崇齐晓医戈酶诚暴渔品代软件技术基础-C语言基础软件技术基础-C语言基础
1. 指针的概念
变量与地址
程序中: int i;
float k;
内存中每个字节有一个编号-----地址(也称为指针)
…...
…...
6500H
6501H
6502H
6505H
内存
0
6503H
程序执行时为其分配内存单元
i
k
注:H表示16进制
霄徘澜粳逼囚题届暂铝屋祁娶做汞譬含州号侵诈通蚀卫唯绪伍矾句掀计芋软件技术基础-C语言基础软件技术基础-C语言基础
指针与指针变量
指针:一个变量的地址
指针变量:专门存放变量地址的变量
指针
指针变量
变量的地址
…...
…...
6500H
6504H
6506H
6505H
整型变量 i = 10
变量 p
6501H
6502H
6503H
10
6500H
指针变量
变量
变量地址(指针)
变量值
变量的内容
斗居亥擞封异函疟檬地巴谐烦鳃地评泅狮崭蓟啼谣辣盂耙欣冬箩涟鲸铃蕾软件技术基础-C语言基础软件技术基础-C语言基础
&与* 运算符
含义
含义: 取变量的地址
单目运算符
结合性:自右向左
含义: 取指针所指向变量的内容
单目运算符
结合性:自右向左
两者关系:互为逆运算,即&* 和*& 相互抵消
理解
…...
…...
6500H
6504H
6506H
6505H
整型变量 i = 10
10
变量 p = &i
6501H
6502H
6503H
6500H
指针变量
p-----指针变量,它的内容是地址量
*p----指针的目标变量,它的内容是数据
&p---指针变量占用内存的地址
6500
10
p
i
*p
p 等价于&i 等价于&(*p)
i 等价于*p 等价于*(&i)
沈盲袱学舶丧鲜凳破状佰就姬稚尼尚钧刮贝市农牵诚跨暗荆般英摹摊城泼软件技术基础-C语言基础软件技术基础-C语言基础
指针变量
…...
…...
6500H
6504H
6506H
6505H
整型变量 i = 10
变量 p = &i
6501H
6502H
6503H
10
6500H
直接访问与间接访问
直接访问:按变量地址存取变量值
间接访问:通过存放变量地址的变量去访问变量
例 i = 3; -----直接访问
例*p = 20; -----间接访问
3
20
研少外朴蝉类酝啡惯腐睫嘉枕挥潜河格巩票去偶殷拘刽琶遁峰挪樊树愧蒸软件技术基础-C语言基础软件技术基础-C语言基础
指针变量
…...
…...
6500H
6504H
6506H
6505H
整型变量 i
变量 p
6501H
6502H
6503H
整型变量 k
10
6500H
例 int i = 10, *p;
p = &i;
k = *p; --间接访问
10
努孙篙缆拖索笨款舜澜稼幂扯郑醚阔诺命险拍小灰苞妆弱抿追兵搔忘伺掖软件技术基础-C语言基础软件技术基础-C语言基础
2. 指针变量
指针变量与其所指向的变量之间的关系
指针变量的定义
一般形式: [存储类型] 数据类型*指针变量名;
3
变量 i
6500H
指针变量 p
*p
i
*p
&i
p
i=3;
*p=3
合法标识符
指针变量本身的存储类型
指针的目标变量的数据类型
表示定义指针变量
不是‘*’运算符
例 int *p1,*p2;
float *q ;
static char *name;
注意:
1、指针变量只能指向定义时所规定类型的变量
2、指针变量定义后,变量值不确定
沧宽亚爆胜镁见拳归雷痹椿墩芥兄巳旦律瓢酱衣跟五揉邻王缀芬芦驶臣缉软件技术基础-C语言基础软件技术基础-C语言基础