一共有十五个优先级:1 () [] . ->2 ! ~ -(负号) ++ -- &(取变量地址)* (type)(强制类型) sizeof3 * / %4 + -5 >> >= >= 全体单目第二; //所有的单目运算符比如++、 --、 +(正)、 -(负) 、指针运算...
分类:
编程语言 时间:
2015-03-19 16:04:00
阅读次数:
180
此文转自:http://www.cnblogs.com/kingln/articles/1129114.html 从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。 而引用是一个别名,它在逻辑上不是独.....
分类:
编程语言 时间:
2015-03-05 00:13:13
阅读次数:
177
场景:
1. 有些频繁使用的指针变量地址不对齐的话运行效率和对齐后的运行效率差别很大,所以在创建堆空间时,有必要对内存地址对齐提高运行效率.
2. 有些音视频处理的代码或者说自定义的malloc基本都是地址对齐的.
3. 使用原子访问的互锁函数时,InterlockedExchangeAdd都需要地址对齐.
3. 主要还是宏APR_ALIGN, 这个说是Apache源码里,就借用一下吧。...
分类:
编程语言 时间:
2015-02-27 23:03:20
阅读次数:
368
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在D...
分类:
其他好文 时间:
2015-02-27 16:47:16
阅读次数:
151
类对象是一个常驻内存的单例对象~,用来创造实例对象~另外,类对象中的IVar也是唯一的通过下面代码的打印结果可以看出,通过class_copyIvarList方法打印出来的Ivar变量地址是对应的,也就是说,虽然方法名里面有copy,其实也是同一份Ivarunsigned int varsCount...
分类:
其他好文 时间:
2015-02-12 18:05:42
阅读次数:
163
new和delete运算符用于动态分配和撤销内存的运算符new使用方法: 1. 开辟单变量地址空间 1)new int; //开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int *a = new int 即为将一个int类型的地址赋值给整型指针a. 2)int *a = new int...
分类:
编程语言 时间:
2015-02-10 20:05:51
阅读次数:
179
一、指针概述
1.简介
指针:其实就是地址。
指针变量:用来存储变量地址的变量。
2.初始化
1)先定义后初始化
int a =10;
int *p;
p=&a;
2)定义并初始化
int a=10;
int *p =&a;
备注:在数据类型后,变量名称前的”*“是一个说明符,用来说明该变量是一个指针变量。
如果前面没有数据类型,如:*p,这里的”*“是一个指针运算符,...
分类:
编程语言 时间:
2015-02-04 14:45:12
阅读次数:
184
关于libtcc .... libtcc的源码仓库:libtcc libtcc是一个微型的C编译器,它可以将C源码直接编译成机器码,并且通过libtcc提供的接口函数,在宿主程序里可以很方便的获取到libtcc编译后的函数或变量地址,这样相比其他脚本语言,libtcc就具有了以下的特点: 脚本完全使...
分类:
其他好文 时间:
2015-02-03 22:54:00
阅读次数:
4628
javascript中数字、字符串参数的传递是直接复制进去了。而数组、对象是把变量地址复制进去的。
分类:
编程语言 时间:
2015-01-30 16:59:21
阅读次数:
172
字节对齐
1. X86结构是小端模式存储,既数据低位在低存储地址,数据高位在高存储地址。例如 short x = 0x3344; 假设x的地址为 0xBFFFF0F4,那么0xBFFFF0F4地址里面存储的是字节0x44, 0xBFFFF0F5地址里面存储的是字节0x33.
2. 为了使CPU能够跟快的访问内存,变量地址和变量长度有关联,即所谓地址对齐。4字节的int类型变量,其起始地址应...
分类:
其他好文 时间:
2015-01-28 19:50:44
阅读次数:
164