【学习打卡】第10天 物联网/嵌入式工程师 第二周
2022/8/13 3:22:58
本文主要是介绍【学习打卡】第10天 物联网/嵌入式工程师 第二周,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称: 物联网/嵌入式工程师
课程章节: 第二周 计算机基础和C语言
主讲老师: 大白老师
课程内容:
今天主要学习了对一级指针的初识和简介。
课程收获:
一级指针其实就是我们平时常见的普通指针:
如
int a=10; int *p=&a;
然后现在介绍一下大小端:
不同系统使用的cpu不同,相对的存储形式也不同,分为大端模式和小端模式
大端模式:内存的低地址存储数据的高位,内存的高地址存储数据的低位
小端模式:内存的低地址存储数据的低位,内存的高地址存储数据的高位。
现在记一下经常记不住的点:
1个16进制数=4个2进制数
1byte=8个2进制数
所以1byte=两个十六进制数.
在32bit的操作系统中,所有类型的指针变量都是4bytes. [因为地址为4bytes]
比如
//03-pointer.c #include <stdio.h> int main() { char *x; short *y; int *z; printf("sizeof(x) = %d\n",sizeof(x)); printf("sizeof(y) = %d\n",sizeof(y)); printf("sizeof(z) = %d\n",sizeof(z)); return 0; }
结果:
sizeof(x) = 4 sizeof(y) = 4 sizeof(z) = 4
但是要注意:
不同类型的指针变量,对C语言中的同一块内从进行读取的时候,每次读取的字节数
不同。(读取为指针变量 + *,剩下数据类型的大小),具体如下:
char *p = (char *)&a; short *q = (short *)&a; int *m = &a; *p; //读取变量a的1bytes数据 *q; //读取变量a的2bytes数据 *m; //读取变量a的4bytes数据
还有就是不同的指针变量,每次移动的大小不一样:
每次移动的大小为数据类型的大小。
char *p = (char *)a; short *q = (short *)a; int *m = a; p++; //每次移动1bytes的大小 q++; //每次移动2bytes的大小 m++; //每次移动4bytes的大小
附上今天的课后作业:
答案:
(1). short *q=(unsigned short *)&data; (2). t1=*q; q++; t2=*q; (3). printf("t1+t2=%#x\n",t1+t2); printf("t1-t2=%#x\n",t1-t2);
每日一句:
有时候没有结果,可能不是自己努力不够,还可能是方向或者方法不对,工欲善其事,必先利其器
这篇关于【学习打卡】第10天 物联网/嵌入式工程师 第二周的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南
- 2024-09-26Springboot微服务资料入门教程