iOS学习(C语言)知识点整理 一、整型数组 1)概念:一组类型相同,空间连续分布的数据。 2)int a[10] int 型里面有10个元素,数组的名字叫a, a还是数组的首地址 。 3)引用数组中的元素 a[i]:数组名+下标,下标从0开始 。 4)数组元素个数刚好与数组长度相当叫完全初始化。 ...
分类:
移动开发 时间:
2016-07-19 09:53:38
阅读次数:
246
在需要计算结构体大小的时候,涉及到的一个问题就是其对齐模数 计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的首地址的值是某个数k(通常它为4或8)的倍数,这就是所谓的内存对齐,而这个k则被称为该数据类型的对齐模数(alignment modulus)。 也就是说对齐模数就是这个 ...
分类:
其他好文 时间:
2016-07-17 13:34:58
阅读次数:
184
Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址。 Container_of的定义如下: #define OffsetOf(type, member) ((unsign ...
分类:
系统相关 时间:
2016-07-15 20:04:54
阅读次数:
187
1. ptr->name,等同于打印(*p).name。 2. *ptr->name,因为->的优先级高于*,所以相当于: *(ptr->name)。即指针首地址的那个字符。 3. *ptr->name++,由于*和++的优先级相同,而且结合性是由右至左,所以相当于: *((ptr->name)++ ...
分类:
其他好文 时间:
2016-07-01 14:47:16
阅读次数:
140
1:内存对齐定义: 现在使用的计算机中内存空间都是按照字节划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但是实际上计算机系统对于基本数据类型在内存 中的存放位置都有限制,要求这些数据存储首地址是某个数K的倍数,这样各种基本数据类型在内存冲就是按照一定的规则排列的,而不是一个紧挨着一 ...
分类:
其他好文 时间:
2016-06-20 15:26:04
阅读次数:
261
这两个概念很模糊,今天遇到理解了好久. 指针数组:是一个数组,里面存放的每个元素都是一个地址. int* a[4] 表示a数组中每个元素都是int型的指针. int *a[4] 和 int *(a[4])是一样的,因为[]优先级比*要高. 数组指针:是一个指针,指向数组元素的首地址. int *(a ...
分类:
编程语言 时间:
2016-06-18 22:23:11
阅读次数:
154
/* 指针练习(精华) 1)首先,要理解变量或数组的首地址,指的就是存放数据的RAM或ROM中地址号最小的那个字节地址。 2)指针前面的类型说明符,具有2重意义(既决定了对一级指针进行解引用时,将会操作的字节数,以及对一级指针进行算术运算时,会跳转的地址个数)。 ①决定了指针加一时,指针会跳转多少个 ...
分类:
编程语言 时间:
2016-06-14 16:00:58
阅读次数:
215
* 栈(stack):局部变量、声明对象的引用名、数组的引用名,定义的类方法中的参数以及局部变量
* 堆(heap) :new出来的“东西”(如:对象的实体,数组的实体),含成员变量(即所谓的全局变量)
* 紧接着对象的引用要与对象的实体进行关联:栈中的对象引用中保存了堆中的实体的首地址,因而才可以正常编译、运行。...
分类:
编程语言 时间:
2016-06-12 02:12:59
阅读次数:
168
Linux内核提供了多个与I/O内存交互的函数,内核的内存管理模块负责同步I/O内存与硬件中的数据。每一个连接Linux的硬件在I/O内存中都会有映射地址。 每一个连接Linux的硬件在I/O内存中都会有映射首地址,在使用函数读写i/o内存时需要指定这些首地址。 创建一个设备文件: 1.使用cdev ...
分类:
其他好文 时间:
2016-06-06 13:41:15
阅读次数:
134
3.1 实现原理 与本机的I/0 内存进行交互。所谓I/0 内存是通过各种接口连接到主机的硬件在主机内存中的映射。然后Linux 内核会利用I/0 内存中的数据硬件交互。Linux 内核提供了多个与1/0 内存交互的函数。每一个连接Linux 的硬件在ν0 内存中都会有映射首地址。 3.2 编写LE ...
分类:
其他好文 时间:
2016-06-06 06:45:30
阅读次数:
142