C语言深度解剖.docx

上传人:11****ws 文档编号:3015550 上传时间:2019-05-17 格式:DOCX 页数:59 大小:73.85KB
下载 相关 举报
C语言深度解剖.docx_第1页
第1页 / 共59页
C语言深度解剖.docx_第2页
第2页 / 共59页
C语言深度解剖.docx_第3页
第3页 / 共59页
C语言深度解剖.docx_第4页
第4页 / 共59页
C语言深度解剖.docx_第5页
第5页 / 共59页
点击查看更多>>
资源描述

1、C 语言深度解剖 第一章:关键字 1.1 定义声明 Int i;定义创建了对象并为这个对象分配了内存 Extern int i;声明没有分配内存。 1.2 auto 在缺省的时候,编译器默认所以的变量都是 auto 的。 自动变量 1.3 register 声明寄存器变量 Register:这个关键字请求编译器尽可能地将变量存在 CPU 内部寄存器中,而不是通过内存寻址访问以提高效率。 ( cpu:皇帝,寄存器:太监,内存:大臣 , 不考虑 CPU的高速缓存区 cache) 寄存器的存取速度比内存块得多。但在使用 register 修饰符也有些限制的: register 变量必须是能被 CPU

2、 寄存器所接受的类型。这就意味着 register 变量必须是一个单个的值,并且其长度应小于或等于整型的长度,而且 register 变量可能不存放在内存中,所以不能用取地址运算符“ int k = 0; void fun1(void) static int i; i+; void fun2(void) j+; int main(void) for(k = 0;k void fun(int b100) int a = sizeof(b);/a=4 int main(void) int *p = NULL; int length = sizeof(p);/length=4 length = si

3、zeof(*p);/length=4 int a100; length = sizeof(a);/length=400 length = sizeof(a100);/length=4 length = sizeof(/length=400 length = sizeof(/length=4 fun(a); return 0; 1.5 -0 与 +0和补码 signed char 为什么能表示的数据范围是 -128127 答: 一个 char 共 8 位可以表示 256 个数,最高位为符号位,除开最高位还有 7 位共 128 种编号,如果最高位为 0, 可以表示 0( 0 0000000)127

4、( 0 1111111) 共 128 个正整数 ;如果最高位为 1,则可表示 -128( 1000 000) 、 -1( 1000 0001) 到 -127( 1 111 1111) 共 128 个 负整 数 ,其实 -128 从数字大小来说应该 为 -0 ,但在数字世界里一般只需一个 +0 ,即 0 即可, -0 最后就规定用来表示 -128 这个数了。 二进制数如何求补码: 正数补码:全不变。 例: +1( 0 000 0001)的补码( 0 000 0001)。 负数的补码:除符号位外,各位取反加 1 例: -1( 1 000 0001)的补码 =( 1 111 1110+1=1111

5、1111)。 Strlen 函数 判断一个字符串的结束就是以其末尾的 0为界限 , 不包括0这个字符的。 头文件 string.h 1.6 float 与“零值”比较 Float 与零值进行比较的 if 语句怎么写? Float a=0.0; If(( a=EPSINON) 这种形式是非法的, C99 支持的形式是形同 int item;当然,上面既然用 malloc 函数分配了内存,肯定就需要用 free 函数来释放内存: free(p); 1.10 struct 与 class 的区别 在 C+里 struct 关键字与 class 关键字一般可以通用,只有一个很小的区别。 struct

6、的成员默认情况下属性是 public 的,而 class 成员却是 private 的。很多人觉得不好记,其实很容易。你平时用结构体时用 public 修饰它的成员了吗?既然 struct 关键字与 class 关键字可以 通用,你也不要认为结构体内不能放函数了。 1.11 union 关键字 union 关键字的用法与 struct 的用法非常类似。 union 维护足够的空间来置放多个数据成员中的 “一种 ”,而不是为每一个数据成员配置空间,在 union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有的数据成员具有相 同的起始地址。在 C+里, union 的成员默认属性页为 public。如果一些数据不可能在同一时间同时被用到,则可以使用 union。 ( 1) 大小端模式对 union 类型数据的影响 下面再看一个例子: union int i; char a2; *p, u;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 医药卫生

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。