《高级语言程序设计》第六章课堂笔记-奥鹏教育.doc

《高级语言程序设计》第六章课堂笔记-奥鹏教育.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《高级语言程序设计》第六章课堂笔记-奥鹏教育.doc

奥鹏远程教育中心助学服务部 PAGE  心系天下求学人 Page  PAGE 4 of  NUMPAGES 4 专业 专注 周到 细致 西南交《高级语言程序设计》第六章 指针初步 课堂笔记 主要知识点掌握程度 要求能够理解和掌握指针的基本特性,掌握指针的创建即初始化方法,理解指针的用法,能解答指针方面的编程题。 知识点整理 什么是指针? 指针是C语言的一种数据类型,该数据类型以内存地址为值(一个非负整数),并提供了相关的一系列操作。 指针的基本属性 1、值属性:即指针就是内存地址,指针值即地址值。 2、存贮属性:C指针有三种存贮属性,分别是: (1) near (近)指针:16位段内偏移地址 (2) far(远)指针:16位段地址+16位段内偏移地址 (3) huge(巨)指针:32位规格化的具有唯一性的内存地址 C语言的存贮属性由六种编译模式决定(参见TC集成环境菜单中的option-compiler-model选项),默认的编译模式为small, 在该编译模式下,指针的默认属性为near。 3、对象属性:指该地址开始的内存单元中存放的数据,定义指针变量时,必须指定指针变量的对象类型。我们使用指针的主要目的就是通过指针访问内存中的数据。 指针常量与变量 1、指针常量 (1)空指针:NULL   符号常量NULL定义于头文件stdio.h中,其值为整数0,代表地址0和空指针的概念。 (2)数组的名字:代表数组的首地址常量,即数组第一个元素的首地址。 (3)函数的名字:代表子程序调用的入口地址。 2、指针变量 (1) 定义方法: 对象类型名 *指针变量名; 例:int *p,*q; double *r; char *s; 注意: (a) sizeof(p)=sizeof(q)=sizeof(r)=sizeof(s)=2 这是因为:指针变量的默认属性为near指针,即16位段内偏移地址,需要2字节来存贮。 (b)*号前面的数据类型是指定指针变量对象的数据类型 (2) 指针变量的初始化 C语言允许用指针常量对指针变量初始化. 例: int a[4],*p=NULL,*q=a+1; 注意: (a)不能将一个整数值直接作为内存地址对指??变量进行初始化 如:long *p=0x410; 是错误的用法 (b) 作为一种特殊情况,C语言允许用一个字符串常量初始化一个char *型的指针变量 如: char *s=“ABCD”;  /*变量s得到的是字符串常量第一个字符(字母A)的地址,即串首地址*/ 与指针有关的基本操作 1、取地址运算: 数据对象名 例:int a[5],*p,*q,b=15; p=a[1]; q=b; 2、取对象运算:*指针表达式 例:int a=123,*p; p=a; printf(“%d”,*p); 则打印结果为123,即变量a的值 3、指针对象的有关运算: 指针对象可进行与之同类型变量的所有运算,如赋值,自加减1,四则运算等。 例:int a,*p; p=a;   /*给对象赋值和自反赋值*/   *p=15; /*相当于a=15 */ *p*=2; /*相当于a=a*2 */   /*指针对象自加减1的运算*/ (*p)++; (*p)--; ++(*p); --(*p);   /*其它运算*/ *p=(*p)*(*p); /*相当于a=a*a; */ 4、正确建立指针对象的方法 (1)用已有的变量或数组空间建立对象 例:int a=15,*p,*q,b[3]; p=a; q=b[1]; (2)用内存分配函数建立对象 介绍两个函数:头文件均为stdlib.h 函数原形: void *malloc(unsigned n) 函数功能:分配n字节连续内存单元供用户使用,分配成功,返回首地址,分配失败,返回NULL。 函数原形: free(void *p) 函数功能:释放由malloc分配的内存单元,由自变量p给出内存块的首地址。 例:double *p;

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档