如何大端模式和小端模式 (函数)指针
实验判断计算机的大小端和数组,指针的一些注意事项
1 |
|
分析
原理:利用了*char
来取出shourt
低地址一字节的数据。
(假设shourt是双字节,char是单字节)
如果是小端模式:低地址保存低位数据
*p_ch
打印 1,因为1的低位一字节数据是0b0000001。*p_ch_2
打印 0,因为8192的低位一字节数据是0b0000000。
如果是大端模式:低地址保存高位数据
*p_ch 打印 0,因为在大端模式下,1的高位一字节是0b0000000。
*p_ch_2 打印 32,因为在大端模式下,8192的高位一字节是0b001000。
一些指针事项
指针+-整数 就是跳过几个该指针的类型。
地址(指针)-地址(指针)的意义就是,差了几个元素——前提:两个指针指向同一个地址空间。
我们可以通过指针算术来获得指向其他元素的指针,例如 arr + 1 指向 arr[1],并且指针算术和比较允许将指针与数组的结束位置进行比较,但不能和第一个元素之前的位置进行比较。
- 例如:
1
2
3
4for (int* p = arr; p < arr + 5; ++p) {
printf("%d ", *p);//遍历数组
/* 非法的比较 while (p >= arr - 1) 这种比较是无效的,因为指针不能指向第一个元素之前的位置*/
}决定了指针进行解引用操作的时候,一次性访问几个字节,取决于指针的类型。
函数指针的使用
- 基础用法
- 首先,定义函数
- 然后根据函数的定义,完成函数指针的设置。
函数返回类型 (*函数指针名)(参数类型, 参数类型)
- 最后调用
- 函数指针数组
函数返回类型 (*函数指针数组名[元素个数])(参数类型, 参数类型) = {函数名, 函数名, 函数名}
- 带参数的函数指针
- 参考实验代码
实验代码
1 |
|
如何大端模式和小端模式 (函数)指针
https://weihehe.top/2024/07/05/大端模式和小端模式/