大小端,高地址和低地址
小端字节序:低字节数据存放在内存低地址处,高字节数据存放在内存高地址处。
大端字节序:高字节数据存放在低地址处,低字节数据存放在高地址处。
高地址:内存地址可以对应十六进制的数值,值大的为高地址,否则为低地址。
整数类型内部:低地址存储低位,高地址存储高位。
局部变量:先定义的高地址,后定义的低地址。
类,结构体,数组:先定义的低地址,后定义的高地址。
数组实际占用的空间,要比元素大,感觉上像是给数组名本身一个“指针类型”的空间,即4个字节。
原码反码和补码
原码:最高位作为符号位(1表示负,0表示正),其它数字位代表数值本身的表示方式。
反码:如果是正数,表示方法和原码相同;
如果是负数,符号位不变,其余按位取反,则得到这个数字的反码表示形式。
补码:如果是正数,表示方法和原码相同;
如果是负数,则将数字的反码加1(相当于将原码按位取反然后最低位加1)。
注:原码、反码、补码主要看它的字型数据
如果字型数据占8位,那么它的原码、反码、补码都是8位;
如果字型数据占16位,那么它的原码、反码、补码都是16位。
计算机中,二进制位以补码格式存储于内存;十进制数是以二进制形式进行逻辑运算的。
下标引用、函数调用和结构成员
1.[ ]下标引用操作符
操作数:一个数组名+一个索引值
int arr[10];//创建数组
arr[9]=10;//实用下标引用操作符
[ ]的两个操作数是arr和9
2.( )函数调用操作符接受一个或多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
x++与++x的区别
1.简单的表达式中x++和++x表示着相同的意思,比如常用于for循环语句中;
2.当递增或者递减的运算结果被直接用在其他表达式中,x++与++x就代表着不同的意思了
++x:变量x的值先增加,再计算整个表达式的值
x++:变量x的值在表达式计算后再增加
数组名表示数组首元素地址,但是有2个例外:
1.sizeof(数组名),数组名单独放在sizeof内部,数组名表示整个数组,计算的是数组的大小,单位是字节。
2.&数组名,数组名表示整个数组,取出的是数组的地址,数组的地址和数组首元素地址的地址,值是一样的,但是类型和意义是不一样的。