1 / 34
文档名称:

C语言要点总结.doc

格式:doc   页数:34页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言要点总结.doc

上传人:xxj16588 2016/3/13 文件大小:0 KB

下载得到文件列表

C语言要点总结.doc

相关文档

文档介绍

文档介绍:《C 和指针》《C 专家编程》《C 陷阱与缺陷》《C 语言编程要点》总结说明:总结的知识点主要源于上面的 4 本书。--wuliming --2007-04-25 wuliming_sc@ 指针和数组相关概念************************************************* 字符与字符串的区别指针与数组 1指针与数组 2指针和数组的相同与不同用 malloc 为字符串分配存储空间时的注意事项字符串常量用字符串常量初始化指针和数组二维数组下标操作的相关概念指向一维、二维数组的指针 array_name 和&array_name 的异同数组作为函数的参数时,不能通过 sizeof 运算符得到该数组的大小用 strlen() 求字符串的长度‘ char ** ’和‘ const char ** ’的兼容性问题空指针相关的问题 NULL 和 NUL 的区别未初始化的指针和 NULL 指针的区别理解函数的声明函数参数的传值调用函数指针作为函数参数的多维数组强制类型转换相关概念 malloc() 、 calloc() 、 realloc() 字符与字符串的区别(c 缺陷与陷阱 节) #include <> int main() { char ch = 'abcdefghijklmnopqrstuvwxyz'; char str[] = "abcdefghijklmnopqrstuvwxyz"; printf("-----%c-----\n%s\n",ch, str ); return 0; } 编译该程序可以通过,但是会产生警告;输出结过为: -----z----- Abcdefghijklmnopqrstuvwxyz // 在 Dev-C++ 编译环境中可以通过,但是在 中通不过指针与数组 1(c 缺陷与陷阱 节) c 语言中的数组值得注意的地方有以下两点: 1、c 语言中只有一维数组, 而且数组的大小必须在编译期间就作为一个常数确定下来(C99 标准允许变长数组, GCC 编译器中实现了变长数组)。然而,c 语言中数组的元素可以是任何类型的对象, 当然也可以是另外一个数组。这样,要仿真出一个多维数组就不是一件难事。 2 、对于一个数组,我们只能够做两件事:确定该数组的大小,以及获得指向该数组下标为 0 的元素的指针。其他有关数组的操作,哪怕它们乍看上去是以数组下标进行运算的,实际上都是通过指针进行的。换句话说, 任何一个数组下标运算都等同于一个对应的指针运算,因此我们完全可以依据指针行为定义数组下标的行为。现在考虑下面的例子: int i; int *p; int calendar[12][31]; 上面声明的 calendar 是一个数组,该数组拥有 12 个数组类型的元素,其中的每个元素都是一个拥有 31 个整型元素的数组。因此, sizeof(calendar) 的值是: 31 × 12 × sizeof(int) 。考虑一下, calendar[4] 的含义是什么?因为 calender 是一个有着 12 个数组类型元素的数组,它的每个数组类型元素又是一个有着 31 个整型元素的数组, 所以 calendar[4] 是 calendar 数组的第 5 个元素,是 calenda r 数组中 12 个有着 31 个整型元素的数组之一。因此, calendar[4] 的行为也表现为一个有着 31 个整型元素的数组的行为。例如, sizeof(calendar[4]) 的结果是: 31 × sizeof(int) 。又如, p= calendar[4] ;这个语句使指针 p 指向了数组 calendar[4] 中下标为 0 的元素。因为 calendar[4] 是一个数组,我们可以通过下标的形式来指定这个数组中的元素: i= calendar[4][7] ,这个语句也可以写成下面这样而表达的意思保持不变: i= *( calendar[4] +7) ,还可以进一步写成: i= *( *( calendar +4) +7)。下面我们再看: p= calendar; 这个语句是非法的,因为 calendar 是一个二维数组,即“数组的数组”,在此处的上下文中使用 calendar 名称会将其转换为一个指向数组的指针。而p 是一个指向整型变量的指针, 两个指针的类型不一样,所以是非法的。显然,我们需要一种声明指向数组的指针的方法。 int calendar[12][31]; int (*monthp)[31]; monthp = calendar; int (*monthp)[31] 语句声明的*monthp 是一个拥有 31 个整型元素的数组,因此,

最近更新

磨牙症无线监测与生物反馈治疗系统的设计与开.. 2页

磁控溅射制备Ge纳米点的研究 2页

碳金融发展的国际比较及对我国的启示 2页

碳结构及其杂化材料的光学非线性研究 2页

碳纳米管热塑性聚合物复合材料的制备及蠕变行.. 2页

碳纳米管中水分子定向传输的研究 2页

碳素纤维材料在污水治理中的应用研究 2页

碳基多孔材料的制备及储能性能的研究 2页

碲基复合薄膜的三阶非线性光学性质及其光限幅.. 2页

碗扣式模板支架静力性能研究 2页

硼-铬-稀土低温共渗剂的研制 2页

硕士毕业生职业选择影响因素研究 2页

破坏自然资源犯罪的实证分析 2页

砌体结构嵌筋加固墙体抗震性能试验研究及理论.. 2页

矿用皮带运输机监控系统研究与实现 2页

石油高校科技成果转化机制运行问题研究 2页

石松类生物碱huperzine A和U的不对称全合成研.. 2页

石家庄市发展低碳经济政策研究 2页

石墨烯纳米复合材料的制备及其界面电化学性质.. 2页

石墨烯基纳米材料和闭孔氧化硅材料的设计合成.. 2页

短肽聚集动力学及局域构象转变的研究 2页

教材研究分析报告范文 3页

2024年湖南高考历史真题及答案 高考历史真题 8页

STA无痛麻醉仪ppt课件 70页

常用打捞工具及工作原理 62页

异位妊娠双语教学资料 9页

少教多学在中小学语文教学中的策略与方法研究.. 10页

体育与健康人教版六年级全一册《素质练习—上.. 8页

党规党纪知识竞赛主持词样稿 6页

《拙火经验——李·萨那拉博士着(简体文字版).. 76页