- 博客(10)
- 资源 (8)
- 收藏
- 关注
原创 二维数组的指针定义方式——省空间
此时a即指针一块容量为10个int型变量的内存,相当于数组,想访问该数组可通过 *(a++)来实现。上面关于指针p2的内存分配,分配的大小为整个二维数组的大小,赋值给p2时,将其划分为10行;1、一般的认识里面,指针表示一块内存地址的起点,而对于数组而言,其本质也是一块内存,数组的第一个元素的地址或数组名表示该块内存的首地址;首先将该数组想象为一块内存,但这块内存需要按照二维数组的行列大小进行切分,这样为节省空间,可将数组行和列种最小的一个作为静态变量定义;//定义一个指向10个int型元素的数组;
2023-07-07 10:55:53
282
转载 C语言结构体大小计算举例(二)
这篇文章来探讨一下C语言中,结构体占的内存大小如何计算。printf(“str = %d”, sizeof(struct str));//用这个方法来查看一个结构体的大小 我尝试了好几次发现一个奇怪的现象,当定义一个结构体变量的时候,结构体成员的顺序不同就会造成这个结构体所占的空间大小的不同。这是什么原因呢?原来是因为在编译器中,为了CPU访问数据的高效率。如果变量的地址不对齐,那么CPU读取结构体就需要对结构体成员进行重复的访问,然后组合得到整型数据。而如果变量在自然对齐位置上,则只要一次就可以取
2020-10-27 09:21:38
748
转载 C语言结构体大小计算
定义结构体中的偏移量结构体中的偏移量是一个成员的实际地址和结构体首地址之间的距离。结构体大小计算结构体大小 会涉及到字节对齐(目的是 让计算机快速读写 以空间换取时间)。即,最后一个成员的偏移量加上最后一个成员的大小再加上末尾的填充字节数。结构体内偏移规则1、每个成员的偏移量都必须是当前成员所占内存大小的整数倍如果不是编译器会在成员之间加上填充字节。2、当所有成员大小计算完毕后,编译器判断当前结构体大小是否是结构体中最宽的成员变量大小的整数倍 如果不是会在最后一个成员后做字节填充。struc
2020-10-27 09:19:00
907
转载 C语言#Error的作用
编译程序时,只要遇到 #error 就会跳出一个编译错误,既然是编译错误,要它干嘛呢?其目的就是保证程序是按照你所设想的那样进行编译的。下面举个例子:程序中往往有很多的预处理指令#ifdef XXX…#else#endif当程序比较大时,往往有些宏定义是在外部指定的(如makefile),或是在系统头文件中指定的,当你不太确定当前是否定义了 XXX 时,就可以改成如下这样进行编译:#ifdef XXX…#error “
2020-10-27 09:13:30
1542
转载 嵌入式C语言经典面试题(一)
1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,括号
2020-10-27 09:05:45
4472
1
原创 Windows 远程桌面连接报xrdp_mm_process_Login_response fail
Windows 下通过远程桌面连接远程电脑主机时,突然出现连接不上,弹出界面报错:xrdp_mm_process_Login_response fail。。。。耽误半天时间,后来删掉一些原来在用的远程连接用户,就可以啦啦啦。到底时什么原因,也不清楚,主要是能够连接上了,,,...
2020-10-22 11:09:57
592
1
转载 关于Char *a与Char a[]中变量占用空间的大小(Windows 7 32位)
分类专栏: C++ (CPP) 文章标签: 面试去面试时几家公司很爱在char *和char []上做文章,很基础也容易犯错。面试题里很喜欢折腾这些内容,在这里简单的做个比较。如果有错误,请指正。1、Test 1//字符数组大小未指定大小,指针变量操作数没有类型#include int main(){ using
2020-09-24 09:37:44
4305
转载 C语言中关键字const修饰的指针常量以及常量指针
关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const呢,我想事物的存在一定有它自己的道理,所以说const的存在一定有它的合理性,与预编译指令相比,const修饰符有以下的优点:1、预编译指令只是对值进行简单的替换,不能进行类型检查2、可以保护被修饰的东西,防止意外修改,增强程序的健壮性3、编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间
2020-09-03 09:18:18
396
转载 对i++和++i的深刻理解
对i++和++i的深刻理解小猴子捞月 2019-05-17 22:44:51 5304 收藏 16 分类专栏: 笔记 版权前言:初学C语言的朋友一定对i++和++i傻傻分不清楚,本文将清楚的阐述两者的区别与联系。话不多说我们先来看一下例子:运行结果为:由上图我们可以发现i++和++i单独存在于代码段中时功能都是一样的都是执行i+1的功能,可是在多运算进行时两者的区别就显现了出来。首先,我们分析一下为什么第二行的j=1而不是j=2....
2020-09-03 09:06:55
738
原创 多点定位方法的讨论
最近在做一个多点定位的系统,问题涉及到n多个点组网后将数据传输到服务器,再由服务器计算组网系统中被定位装置的位置信息。 有一点疑问:如果我将每三个点做组成的的系统称之为最小定位单元(每个基点具有测量被定位装置到基点的距离的功能,附图后面),那么我假设每个最小系统中的基点都是以类似等边三角形的方式组成,最小单元的测量范围是以最小单元的外切圆。单个的最小单元内部的定位的问题可以解决,但是当
2016-04-06 23:00:19
1680
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人