- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(c语言的重要概念
c语言的重要概念
一、C语言的指针1.指针说明 指针是包含另一变量的地址变量。 (1)int *p p是一个指针,指向一个整形数。 (2)int *p() p是一个函数,该函数返回一个指向整数的指针。 (3)int (*p)() p是一个指针,该指针指向一个函数,这个函数返回一个整数。 (4)int *p[] p是一个数组,该数组的每一个元素是指向整数的指针。 (5)int (*p)[] p是一个指针,该指针指向一个数组,这个数组的每一个元素是一个整数。 (6)int *(*p)() p是一个指针,该指针指向一个函数,这个函数返回一个指向整数的指针。2.指针的初始化(赋地址) (1)通过符号取变量(包括结构变量、数组第一个元素)的地址赋给指针; (2)把数组名赋给指针; (3)把函数名赋给指向函数的指针; (4)动态分配内存 例:struct c{double r,i;}; struct c *p; p=(struct c *)malloc(sizeof(struct c));3.指针与数组、函数的关系 (1)对于一维数组 int a[i] 或指针 int *a a+i 指向 a[i] (2)对于字符串 char s[i] 或指针 char *s s+i 指向第 i个字符 s[i] (3)对于二维数组int a[i][j] *a+j 指向 a[0][j] *(a+i) 指向 a[i][0] *(a+i)+j 指向 a[i][j] 例:对于 a[2][3]={1,2,3,4,5,6,}; 有 *(*(a+1)+1)=5; (4)对于字符串数组char p[i][j] 或字符型指针数组char *p[i] *p+j 指向第 0个字符串的第 j个字符 *(p+i) 指向第 i个字符串的第 0个字符 *(p+i)+j 指向第 i个字符串的第 j个字符 例:对于 *p[]={ABC,DEF}; 有 *(*(p+1)+1)=E; 例:对于 char p[][3]={ABC,DEF}; 有 *(*(p+1)+1)=E; (5)对于指针数组int *a[i] a[i] 指向 变量i 即 *a[i]=变量i 或 a[i]=变量i (6)对于结构struct XY {int x;int *y}*p; p是指向结构XY的指针 (*p).x 或 p-x 是表示 x 的内容 (*p).y 或 p-y 是表示指针 y 的值(地址) *(*p).y 或 *p-y 是表示 y 所指的内容 (*p).x 或 p-x 是表示 x 的地址 (7)指向函数的指针 对于 void func(char *str) {…}; //定义了一个函数 void (*p)(char*);//定义了一个函数指针 p=func; //让指针指向函数 则(*p)(…); //用指针p可以调用函数func (8)指向多个不同函数的指针数组 对于void function_1() {…}; … void function_4() {…}; //定义了四个函数 typedef void(*menu_fcn)();//定义了指向函数的指针 menu_fcn command[4]; //定义了指针数组 command[0]=function_1; … command[3]=function_4; //让指针数组指向四个函数 则command[0](); //用指针数组中的一个元素调用一个函数4.指针的分类 (1)近指针(near): 近指针为16位指针,它只含有地址的偏移量部分。近指针用于不超过64K 字节的单个数据段或代码段。在微、小和中编译模式下产生的数据指针是近指针(缺省状态);在微、小和中编译模式下产生的码指针(指向函数的指针)是近指针(缺省状态)。 (2)远指针(far) 远指针为32位指针,指针的段地址和偏移量都在指针内。可用于任意编译模式。每次使用远指针时都要重装段寄存器。远指针可寻址的目标不能超过64K ,因为远指针增减运算时,段地址不参与运算。在紧凑、大和巨模式下编译产生的数据指针是远指针(缺省状态)。 (3)巨指针(huge) 巨指针为32位指针,指针的段地址和偏移量都在指针内。可用于任意编译模式。远指针寻址的目标可以超过64K 。巨指针是规则化的指针。5.指针的转换 (1)远指针转换成巨指针 使用以下函数 void normalize(void far * * p) {
您可能关注的文档
- [【创优导学案】2014届高考历史一轮复习专题181中国传统文化主流思想的演变巩固提升含解析人民版.doc
- (cet4cloze常考词组.doc
- [【创优导学案】2014届高考历史一轮复习专题19近代中国思想解放的潮流巩固提升含解析人民版.doc
- (cet4七十二常用语法.doc
- [【创新设计】新课标2014年高中英语Unit3Celebration单元测试北师大版必修1.doc
- (CET4常用词组经典版.doc
- [【初三语文】高频度错题整理测试卷.docx
- (CET4高频短语及搭配734教学版.doc
- [【加练半小时】2017年高考英语全国复习练习题第10练Word版含答案.doc
- [【加练半小时】2017年高考英语全国复习练习题第19练Word版含答案.doc
最近下载
- 初中道德与法治新人教版七年级上册全册教案(2024秋).pdf VIP
- 2025年无犯罪记录证明申请表申请书(模板).docx VIP
- 《新媒体营销基础》课件——新媒体营销概述.pptx VIP
- 项目计划进度管理流程图.pdf VIP
- 2024广播电视播音员主持人考试历年机考真题集附答案详解【考试直接用】.docx VIP
- 200MWh储能电站安全预评价报告.doc VIP
- 华为经营管理-华为的流程管理(6版).doc VIP
- 2015-2020年一建历年真题-水利.pdf VIP
- 平行文本在翻译中的运用.ppt VIP
- 口腔医疗行业市场规模增长与竞争格局分析报告:2025年市场展望.docx
文档评论(0)