摘要: a=6 a=-18 a 的原码就是0000 0000 0000 0110 1000 0000 0001 0010 反码: 0000 0000 0000 0110 1111 1111 1110 1101 补码: 0000 0000 0000 0110 1111 1111 1110 1110 对于正数, 阅读全文
posted @ 2021-03-11 22:13 myrj 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 没学指针就是没学C语言!指针是C语言的精华,也是C语言的难点,破解C语言指针,会让你的C语言水平突飞猛进。所谓指针,也就是内存的地址;所谓指针变量,也就是保存了内存地址的变量。不过,人们往往不会区分两者的概念,而是混淆在一起使用,在必要的情况下,大家也要注意区分 计算机中所有的数据都必须放在内存中, 阅读全文
posted @ 2021-03-11 16:07 myrj 阅读(198) 评论(0) 推荐(0) 编辑
摘要: C语言允许为一个数据类型起一个新的别名,就像给人起“绰号”一样。 起别名的目的不是为了提高程序运行效率,而是为了编码方便。例如有一个结构体的名字是 stu,要想定义一个结构体变量就得这样写:struct stu stu1; struct 看起来就是多余的,但不写又会报错。如果为 struct stu 阅读全文
posted @ 2021-03-11 15:51 myrj 阅读(1406) 评论(0) 推荐(0) 编辑
摘要: 数据加密解密是一个常用的功能,如果你不希望让别人看到文件中的内容,可以通过密钥(也称”密码“)将文件的内容加密。比如文本文件(.txt),加密前的内容是能够读懂的,加密后的内容是”乱码“,都是一些奇怪的字符,根本无法阅读。数据加密解密的原理也很简单,就是使用异或运算。请先看下面的代码: #inclu 阅读全文
posted @ 2021-03-11 15:48 myrj 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 所谓位运算,就是对一个比特(Bit)位进行操作。在《数据在内存中的存储》一节中讲到,比特(Bit)是一个电子元器件,8个比特构成一个字节(Byte),它已经是粒度最小的可操作单元了。C语言提供了六种位运算符: 运算符 & | ^ ~ << >> 说明 按位与 按位或 按位异或 取反 左移 右移 按位 阅读全文
posted @ 2021-03-11 15:46 myrj 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 有些数据在存储时并不需要占用一个完整的字节,只需要占用一个或几个二进制位即可。例如开关只有通电和断电两种状态,用 0 和 1 表示足以,也就是用一个二进位。正是基于这种考虑,C语言又提供了一种叫做位域的数据结构。在结构体定义时,我们可以指定某个成员变量所占用的二进制位数(Bit),这就是位域。请看下 阅读全文
posted @ 2021-03-11 15:44 myrj 阅读(618) 评论(0) 推荐(0) 编辑
摘要: 大端和小端是指数据在内存中的存储模式,它由 CPU 决定:1) 大端模式(Big-endian)是指将数据的低位(比如 1234 中的 34 就是低位)放在内存的高地址上,而数据的高位(比如 1234 中的 12 就是高位)放在内存的低地址上。这种存储模式有点儿类似于把数据当作字符串顺序处理,地址由 阅读全文
posted @ 2021-03-11 15:42 myrj 阅读(1724) 评论(0) 推荐(0) 编辑
摘要: 结构体(Struct)是一种构造类型或复杂类型,它可以包含多个类型不同的成员。在C语言中,还有另外一种和结构体非常类似的语法,叫做共用体(Union),它的定义格式为: union 共用体名{ 成员列表}; 共用体有时也被称为联合或者联合体,这也是 Union 这个单词的本意。 结构体和共用体的区别 阅读全文
posted @ 2021-03-11 15:41 myrj 阅读(1369) 评论(0) 推荐(0) 编辑
摘要: 在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等。以每周七天为例,我们可以使用#define命令来给每天指定一个名字: #include <stdio.h> #defi 阅读全文
posted @ 2021-03-11 15:37 myrj 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 当一个指针变量指向结构体时,我们就称它为结构体指针。C语言结构体指针的定义形式一般为: struct 结构体名 *变量名; 下面是一个定义结构体指针的实例: //结构体 struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char gro 阅读全文
posted @ 2021-03-11 15:35 myrj 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 所谓结构体数组,是指数组中的每个元素都是一个结构体。在实际应用中,C语言结构体数组常被用来表示一个拥有相同数据结构的群体,比如一个班的学生、一个车间的职工等。在C语言中,定义结构体数组和定义结构体变量的方式类似,请看下面的例子: struct stu{ char *name; //姓名 int nu 阅读全文
posted @ 2021-03-11 15:33 myrj 阅读(520) 评论(0) 推荐(0) 编辑
摘要: 数组(Array),它是一组具有相同类型的数据的集合。但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为字符,成绩为小数,因为数据类型不同,显然不能用一个数组来存放。 在C语言中,可以使用结构体(Struct)来存放 阅读全文
posted @ 2021-03-11 15:27 myrj 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 函数用于计算,过程用于操作。 一般来说,一个程序在运行中遇到一个函数,即压栈(可暂理解为储存)当前所有状态,并停止运行当前程序,转入运行函数体,此时函数体的运行是在与原程序毫不相干的空间中运行,无论函数怎么运行都不会对原程序造成任何影响,当函数体运行结束时,此函数运行时所开辟的空间也随之消失,原程序 阅读全文
posted @ 2021-03-11 09:42 myrj 阅读(181) 评论(0) 推荐(0) 编辑