当前位置:网站首页>指针/【类型】对指针加一能力的影响(&*ip ,*&ipd)
指针/【类型】对指针加一能力的影响(&*ip ,*&ipd)
2022-08-02 14:13:00 【白U】
数据区和栈区的区别?
一个存储单元就是 1 字节,一个字节就是8个二进制位
a*b : 表示乘法
int * a :定义一个指针变量
*a = 100 ; 获取指针指向的数据 (解引用)
通用寄存器
没有类型:数据就没有意义。
- 类型决定了指针加一的能力
- 类型决定了指针对内存的解释能力。

- 指针:
- 在32位平台 占4个字节,64平台占8个字节
- 指针就是内存的地址
- 指针变量就是保存内存地址的变量
操纵指针必须明确,
一个存储单元就是 1 字节,一个字节就是8个二进制位
如果是32位系统,指针为四字节,存储时,存储的是16进制数(小端存放,高位数在高地址,低位数在低地址)
1, 指针自身的值,
2, 以及指针所指之物的值
操作指针,要明确指针自身的值,如ip本身的值就是b的地址。
int main()
{
int a = 10, b = 20;
int* ip = NULL;
ip = &a;
*ip = 100;
ip = &b; //操作指针,要明确指针自身的值,如ip本身的值就是b的地址。
*ip = 200; // *ip就是b本身
*ip = *&a 是等价的
面试:
- 从代码层面:ip存放的是变量的地址,那么*ip解引用就是变量本身
- 从机器指令角度:首先把ip的的值(变量的地址)取出来(放到ecx)中,接下来对它的地址进行操作,将所要赋予的值放入到指定的内存地址空间中

&*ip *&ipd
实参传值的时候,是从右向左
- 传地址
Swap_a(&x,&y);
**```
将y的地址传给*bp,接下来x的地址传给*ap。**
```c
void Swap_a(int *ap,int *bp)


指针:仅存放变量的首地址。不论是double,int,char
在32位系统中,永远是占四字节
指针+1 和类型相关:
x86系统: int *p = ar[5];
p+1; +4字节
double: +8
char +1
int main()
{
int ar[5] = {
12,23,34,45,56 };
int* p = ar;
int x = 0;
int y = 0;
x = *p++;
y = *p;
printf("%d,%d\n", x, y);
x = ++ * p;
y = *p;
printf("%d,%d\n", x, y);
x = *++p;
y = *p;
printf("%d,%d\n", x, y);
}
int main()
{
int a = 0x12345678; //共四个字节
int* ip = &a;
char* p =(char*) &a;//只能一个字节一个字节
char* cp = (char*)&a;
*p = 'a'; // 97 0x61 存放在低地址
*p = 'b'; //98 0x62
p = p + 1;
*p = 'c'; //99 0x63
p = p + 1;
//打印 63 62 61
return 0;
}
边栏推荐
猜你喜欢
随机推荐
Unity-PlayMaker
5款最好用的免费3D建模软件(附下载链接)
光波导的入射耦合和出射耦合区域
戴森球计划这个游戏牛逼
线性结构,顺序结构
C#实现简单的计算器
Redis common interview questions
二叉排序树与 set、map
第三十一章:二叉树的概念与性质
Based on the least squares linear regression equation coefficient estimation
[System Design and Implementation] Flink-based distracted driving prediction and data analysis system
tcp transparent proxy (IP_TRANSPARENT)
从FAST TCP到POWERTCP
audio console无法连接到RPC服务
3.用户上传头像
关于推荐系统的随想
LITESTAR 4D应用:室内植物照明模拟
Happy, 9/28 scene collection
Unity中事件的3种实现方法
golang内存相关文章-收集









![[System Design and Implementation] Flink-based distracted driving prediction and data analysis system](/img/f0/23ac631b6eb9b794224d8ae78e6523.png)