[c/c++] 容易忘的基础知识汇总

数组指针与指针数组:

 

 int *a[10]数组,int*类型的数组,即包含10个int类型指针的数组
 int (*a)[10]指针,指向数组的指针,即指向包含10个元素的数组的指针

记忆方法:从右往左读,变量类型先靠近的数组标记 [ ]  ,则说明是数组;如果有括号,那么就认先认括号里的内容。

 

指向常量的指针 与 指向固定位置的指针(常指针):

const int *p指向常量的指针
int const *p同上
int *const p常指针,只能指向固定位置

记忆方法:按照指针的阅读方法,从右往左读,找到 *,* 左边的是当前变量通过 * 运算符计算后的值。

比如  const int *p 的 * 左边为 const int,那么这个指针就是指向 const int类型的指针,即指向常量的指针;

而  int *const p 的 * 左边为 int,那么这个指针指向的是 int 类型,所以这是一个指向 int 变量的指针, const便可以认为是用来修饰指针的,那么就是常指针,即指正指向固定位置。

 

字节序的 大端 和 小端:

首先明确一点:字节序的大小端仅仅影响超过一个字节的数据,如果是单字节,那么大小端都一样。

网络字节序大端
x86架构数据在内存中存储小端
ARM架构数据在内存中存储小端

假设有数据  0x 12 43 56 87,此16进制数据 由 4个字节组成,那么它的在大端模式和小端模式的内存布局如下:

地址(降序)大端小端
(高地址) 0x30000000......
0x2FFFFFFE0x870x12
0x2FFFFFFD0x560x43
0x2FFFFFFC0x430x56
0x2FFFFFFB0x120x87
(低地址) 0x2FFFFFFA......


总结:小端存储,低地址存放最右侧数据。大端存储,高地址存储最右侧数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值