C语言
-天凉好秋-
这个作者很懒,什么都没留下…
展开
-
关于有符号整型int最小值的取值理解
1. 在计算机系统中,数值一律用补码来存储。原因如下:- 统一了零的编码- 将符号位和其它统一处理。- 将减法运算转变为加法运算。- 两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。2. 对于有符号正整数,原码、反码和补码一样。3. 对于有符号负整数最小值:1000 0000 0000 0000 0000 0000 0000 0000注意:对于计算机来说,它并不认识负数是什么。对原创 2017-03-02 23:54:17 · 5786 阅读 · 1 评论 -
C语言 数组名作为参数传递 数组名发生退化成指针
C语言中,数组名作为参数传递给函数时,数组名会退化为指针;需要数组大小时,需要一个参数传数组名,另一个传数组大小。 实际上,C语言不支持数组名作为形参来进行调用。例如函数void fun(int a[]),里面的a实际上在进行编译时,是作为指针来处理的,所以上面的函数完全等价于void fun(int *a);所以当你想知道数组长度时候,需要在传递参数时传入。案例分析: 如上所示,当数组名作原创 2017-03-09 17:59:56 · 2688 阅读 · 0 评论 -
C语言 为什么数组名(数组首地址)不能进行加减操作?
数组名为什么不能进行加减操作?原创 2017-03-11 23:50:10 · 4109 阅读 · 0 评论 -
C语言 内存管理
C语言 内存管理1.内存分区 C源代码进过预处理、编译、汇编和链接4步生成一个可执行程序。程序在没有运行之前,也就是说程序没有被加载到内存前,可执行程序内部已经分好3段信息,分别是代码区(text)、数据区(data)和未初始化数据区(bss)三个部分。(部分人直接把data和bss合起来叫做静态区或全局区)。运行可执行程序,系统把程序加载到内存,除了根据可执行程序的信息分出代码区、数据区和未初原创 2017-03-12 17:05:34 · 5631 阅读 · 5 评论 -
C语言 变量的作用域和生命周期
C语言 作用域和生命周期a.普通局部变量属于某个{},在{}外部不能使用此变量,在{}内部是可以使用。执行到普通局部变量定义语句,才会分配空间,离开{},自动释放。普通局部变量不初始化,默认值为随机数。b.static局部变量属于某个{},在{}外部不能使用此变量,在{}内部是可以使用。在编译阶段就已经分配空间,初始化只能使用常量。static局部变量不初始化,默认值为0。离开{},static局部原创 2017-03-14 19:59:44 · 12859 阅读 · 2 评论 -
C语言 文件结束标志
文件分类:文件分为两类,文本文件和二进制文件。文本文件基于字符编码,常见编码有ASCII、UNICODE等等。文本文件全是由字符构成,ASCII码的取值是从0~255.#define EOF -1其中-1不在ASCII码的取值范围中,所以在文本文件中EOF(-1)可作为文件结束的标准。int main(){ //以只读的方式打开文件 FILE * fp = fopen("../.原创 2017-03-16 17:31:16 · 12738 阅读 · 0 评论 -
C语言基础一之预备知识(计算机结构组成、计算机系统组成、进制、原码反码补码)
学习C语言之前,必须先对计算机的一些基本知识有一些了解。包括计算机的体系结构,即计算机又处理器、控制器、内存、输入设备和输出设备组成;计算机分为软件系统和硬件系统;以及二进制、原码反码补码等基础知识。原创 2017-06-27 12:37:37 · 771 阅读 · 0 评论 -
Linux多进程 -- 创建子进程
Linux多进程 – 创建子进程fork函数Linux创建单个子进程Linux创建多个子进程父子进程共享内容原创 2017-07-09 13:41:57 · 6322 阅读 · 0 评论