C语言复习第一节

复习难点

1.float类型在内存中的存储方式

 指数位的计算方法,找到化为二进制数后的浮点数中第一个1的位置,如数12.25中应该将小数点左移3位,移到浮点数中第一个1的位置,再比如数0.25,化为二进制为0.01,移到第一个1的位置,应该是向右移2位,那么,得到移动位数后,我们应该怎样计算指数位的值呢?

  首先,我们应该明确指数位起步就有值,大小是127,如果我们得到应该左移三位,那么就应该给127+3,如果我们得到应该右移三位,就应该给127-3,最后将所得到的值化为二进制数存放在指数位,这里需要注意指数位是无符号整数,范围是0-255,尾数位存储的是小数点以后的数字,不足位补0,如12.25在内存中的存储应该是符号位为0,指数位为1000 0011,尾数位为1000 1000 0000 0000 0000 000,0.25在内存中的存储应该是符号位为0,指数位 0111 1101,尾数位为0000 0000 0000 0000 0000 000

 2.类型转换

(下图为隐式类型转换)

 代码检测:

#include <iostream>
#include <string>
using namespace std;

int main()
{
   //不同类型的变量相加,应该先转换类型,将类型转换为同一个类型,在相加
	unsigned char i = -3;     //1111 1101
	char j = 2;               //0000 0010
	cout << typeid(i + j).name() << endl;
    //如上,应该先将i,j转换为int类型,将i转换为253,将j转换为2,相加得到值为255

	printf("%d\n", i + j);    //255

	unsigned char a = 2;      //0000 0010
	char b = -3;              //1111 1101
	cout << typeid(a + b).name() << endl;
    //如上,将a转换为2.将b转换为-3,相加得到-1

	printf("%d\n", a + b);    //-1
    //只有无符号的负数转换为别的类型时,可能会发生变化
}

 

 3.优先级

优先级1

运算符()   含义:圆括号

          []     含义:下表运算符

          ->    含义:指向结构体成员运算符

          .       含义:结构体成员运算符

优先级2

运算符 !   含义:逻辑非运算符

            ~     含义:按位取反运算符

           ++    含义:自增运算符

            --     含义:自减运算符

            -      含义:负号运算符

     (类型)含义:类型转换运算符

            *       含义:指针运算符

            &      含义:取地址运算符

        sizeof   含义:长度运算符

优先级3

运算符:*     含义:乘法运算符

               /     含义:除法运算符

              %    含义:求余运算符

优先级4

运算符:+    含义:加法运算符

               -     含义:减法运算符

优先级5

运算符:<<    含义:左移运算符

               >>   含义:右移运算符

优先级6

运算符:<  <=  >  >=      含义:关系运算符

优先级7

运算符:==     含义:等于运算符

               !=     含义:不等于运算符

优先级8

运算符:&      含义:按位与运算符

优先级9

运算符:^      含义:按位异或运算符

优先级10

运算符:|       含义:按位或运算符

优先级11

运算符:&&    含义:逻辑与运算符

优先级12

运算符:||      含义:逻辑或运算符

优先级13

运算符:?   :        含义:条件运算符

优先级14

运算符:=   +=    -=    *=     /=    %=     >>=    <<=    &=   ^=    |=        含义:赋值运算符

优先级15

运算符:,          含义:逗号运算符

4.数组

int  arr[10]    这是一个数组名为arr,存储10个整型元素

&arr+1    取数组arr的地址,就是代表整个数组,+1后就会移动一个数组的大小

arr+1      代表数组下标为1的地址

int   arr[3][4]   这是一个二维数组,存储10行10列的整型数

如图:在二维数组中, &arr+1代表的是arr最后的位置,(arr+1)代表的是这个二维数组中存储的一维数组,因此代表就是第二行的第一元素的地址,这个位置同样可以用&arr[0]+1来表示,同理,arr[0]+1和&arr[0][0]+1代表的是第一行第二个元素的地址。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是数据结构用c语言描述第三版期末考试复习的内容: 1. 数据结构的基本概念和分类 - 数据结构的定义和意义 - 线性结构、树形结构、图形结构的概念及其特点 - 静态存储结构和动态存储结构的概念及其区别 2. 线性表 - 线性表的定义和基本操作(初始化、插入、删除、查找、遍历等) - 线性表的顺序存储结构和链式存储结构的实现及其优缺点 - 线性表的应用 3. 栈和队列 - 栈和队列的定义和基本操作(入栈、出栈、入队、出队等) - 栈和队列的顺序存储结构和链式存储结构的实现及其优缺点 - 栈和队列的应用 4. 串 - 串的定义和基本操作(插入、删除、子串、匹配等) - 串的存储结构及其优缺点 - 串的应用 5. 树和二叉树 - 树和二叉树的定义和基本概念(根节点、叶节点、度、深度等) - 二叉树的遍历方法(前序遍历、序遍历、后序遍历、层序遍历) - 二叉树的存储结构(顺序存储结构和链式存储结构)及其优缺点 - 线索二叉树的概念及其应用 6. 图 - 图的定义和基本概念(顶点、边、度、路径、连通性等) - 图的存储结构(邻接矩阵、邻接表)及其优缺点 - 图的遍历算法(深度优先遍历、广度优先遍历) - 最小生成树算法(Prim算法、Kruskal算法) - 最短路径算法(Dijkstra算法、Floyd算法) 以上是数据结构用c语言描述第三版期末考试复习的内容,希望对你有帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值