c语言从入门到精通第11章

c语言从入门到精通第11章

ID:39963258

大小:390.31 KB

页数:41页

时间:2019-07-16

c语言从入门到精通第11章_第1页
c语言从入门到精通第11章_第2页
c语言从入门到精通第11章_第3页
c语言从入门到精通第11章_第4页
c语言从入门到精通第11章_第5页
资源描述:

《c语言从入门到精通第11章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第11章内存的快捷方式——指针指针概述指针变量指针与函数void指针类型综合应用——创建简单链表跟我上机第11章内存的快捷方式——指针指针概述指针变量指针与函数void指针类型综合应用——创建简单链表跟我上机第11章内存的快捷方式——指针指针概述指针变量指针与函数void指针类型综合应用——创建简单链表跟我上机第11章内存的快捷方式——指针指针概述指针变量指针与函数void指针类型综合应用——创建简单链表跟我上机第11章内存的快捷方式——指针指针概述指针变量指针与函数void指针类型综合应用——创建简单链表跟我上机第11章内存的快捷方式——指针指

2、针概述指针变量指针与函数void指针类型综合应用——创建简单链表跟我上机第11章内存的快捷方式——指针指针概述指针变量指针与函数void指针类型综合应用——创建简单链表跟我上机11.1指针概述11.1.1内存地址11.1.2内存和指针11.1.1内存地址在计算机程序中使用的所有数据,都必须存储在计算机的存储单元中,并且应能从计算机的存储单元中取出。每个存储单位都有唯一的地址,这就好比街道上每家每户都会有自己的门牌号码一样,如下图所示,内存中从地址1234到地址1237中,存储了一个整型数值12,而内存中地址1238中,存储了一个字符“A”。11.

3、1.1内存地址计算机内存被划分成按顺序编号的内存单元,这就是地址。如果在程序中定义了一个变量,在对程序进行编译时,系统就会给这个变量分配内存单元。变量是内存中某一块存储区域的名称,对变量赋值就相当于把值存储到该存储区域中,看下面的表达式:4字节1234—1237内存中开辟空间存储数据到内存inttotal=12;11.1.1内存地址不同的计算机使用不同的复杂的方式对内存进行编号,通常程序员不需要了解给定的变量具体地址,编译器会处理细节问题,在C语言中,你只需要使用操作运算符&,它就会返回一个对象在内存中的地址,如&total,这个返回的地址指的是

4、该存储区域的起始地址,对变量total来说,就是1234。分析下面代码的结果。inti=12;printf("i的值等于%d,i的地址是",i,&i);输出结果如下:i的值等于12,i的地址是1245052运行的结果很清晰的显示出变量i的地址,获得变量i的地址是通过取地址运算符&。11.1.2内存和指针变量的内存地址就是变量的指针。上一小节中变量total的地址1234就是变量i的指针。如果有一个变量专门用来存放另一变量的指针,则它称为指针变量。下图所示的p就是一个指针变量。变量p中存放的是变量i的指针(地址),变量p就是指向i的指针变量。这

5、是变量p的存储单元该单元地址是2600存储的数据是1234这是变量i的存储单元该单元地址是1234存储的数据是1211.1.2内存和指针定义指针变量的一般形式如下所示:指向数据类型*指针变量名;inti;/*声明变量i*/int*p1;/*声明指向整型变量的指针p1*/charc;/*声明变量c*/char*p2;/*声明指向字符型变量的指针p2*/p1=&i;/*指针赋值*/p2=&c;/*指针赋值*/变量p2变量p2地址是&p2存储数据&c变量c变量p1变量p1地址是&p1存储数据&i变量i11.1.2内存和指针在定义指针变量时需要注意以下三

6、点:⑴如果有int*p,指针变量名是p,而不是*p,*p是表达式。⑵在定义指针变量时必须明确其指向的数据类型。以下是正确的赋值inti;charc;int*p;p=&i;以下是错误的赋值inti;charc;int*p;p=&c;⑶指针变量中只能存放指针(地址),不要将一个非零数(或任何其他非地址类型的数据)赋给一个指针变量。int*p=2;/*错误的赋值*/int*p=0;/*正确的赋值,表示指针指向空*/11.2指针变量11.2.1初识指针变量11.2.2使用指针变量11.2.3指针的运算11.2.1初识指针变量指针变量也是变量,假如该指针变

7、量名叫p,变量p的用途比较特殊,它很无私,它代表的存储单元中存储的是另外一个变量的地址,假如该变量名叫a,可以理解为这个指针变量p指向变量a。当然可以直接访问a从而获得a的数据,也可以间接地通过访问p从而获得a的数据。比如有下面的代码。inti=1;int*p=&i;*p=*p+1;printf(“i=%d,*p=%d”,i,*p);输出结果:i=2,*p=2代码中p=&i,表示指针变量p指向变量i,使用&取地址运算符进行关联的;代码*p=*p+1表示改变指针变量p指向的变量的值,使用的*指针运算符间接访问变量i。11.2.1初识指针变量【范例1

8、1-1】初始指针变量01#include/*包含标准输入输出头文件*/02intmain(void)03{04inti

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。