直接和间接访问

简介: 直接和间接访问

1.直接和间接访问

直接访问:直接通过变量名找到

间接访问:

int i =5;

mypoint = &i;

这个mypoint是用来存i的地址的,但是它本身在内存也有地址的,所以也是占内存的,一般在x86占4字节,在x64占8字节

这个mypoint成为指针变量,专门用来存另一个变量的地址

指针就是一个地址(地址用数字表示)

2.错误提示

void swap(int* pdest1, int* pdest2)
{    
    int temp; temp = *pdest1;      
    *pdest1 = *pdest2;  //*pdest1实际就是pdest1所指向的变量,也就是a        *pdest2 = temp; //*pdest2实际就是pdest2所指向的变量,也就是b 
} 
int main() 
{    
    int a = 5, b = 6;    
    int* p1, * p2; 
    p1 = &a; p2 = &b;    
    if (a < b)    
    {   
        swap(p1, p2);    
    }    
    cout << a << b;    
    return 0; 
}

记住有一个错误

int * p;

*p = 5

这是错的,因为p里面还没有存任何地址,也就是说他没有指向任何一个变量,那这个5往哪里存它都不知道

所以这样改就对了

int * p;

int a;

p = &a;

*p = 5;

这样p的内存里面存的就是a的地址了,*p也就是a了,也就是a=5

相关文章
|
5月前
|
C++
友元是一种允许某些外部函数或类访问另一个类的成员的机制
友元是C++中的一个强大特性,它提供了一种机制来允许特定的外部函数或类访问私有和保护成员。正确使用友元可以增强程序的功能性和灵活性,但应谨慎使用以避免破坏封装性和增加代码的复杂度。在设计类和功能时,合理利用友元,可以使得C++程序更加有效和高效。
47 2
|
6月前
|
JavaScript
如何在自调用函数内部将变量和函数暴露出来,以便外部访问?
在自调用函数中,通过绑定变量和函数到全局对象(浏览器环境的`window`或Node.js的`global`)可实现外部访问。
|
6月前
|
存储 Java
|
6月前
访问结构成员
【2月更文挑战第9天】访问结构成员。
27 3
|
6月前
|
设计模式 缓存 安全
代理模式:解析对象间的间接访问与控制
代理模式:解析对象间的间接访问与控制
|
缓存 IDE API
C#反射与特性(五):主类型成员操作
C#反射与特性(五):主类型成员操作
387 0
C#反射与特性(五):主类型成员操作
玩转JVM中的对象及引用:从创建到引用到分配和优化策略
类加载检查 当Java虚拟机遇到一条new指令的时候,它会先去运行时常量池中寻找new的类的符号引用,并且检查这个符号引用所代表的类是否已经被加载、解析、初始化过。如果没有即需要进行相应的类加载过程。
|
存储 算法 Java
10-对象的实例化内存布局与访问定位
10-对象的实例化内存布局与访问定位
101 0
10-对象的实例化内存布局与访问定位
|
C语言
【C 语言】指针间接赋值 ( 直接修改 和 间接修改 指针变量 的值 | 在函数中 间接修改 指针变量 的值 | 在函数中 间接修改 外部变量 的原理 )
【C 语言】指针间接赋值 ( 直接修改 和 间接修改 指针变量 的值 | 在函数中 间接修改 指针变量 的值 | 在函数中 间接修改 外部变量 的原理 )
563 0
【C 语言】指针间接赋值 ( 直接修改 和 间接修改 指针变量 的值 | 在函数中 间接修改 指针变量 的值 | 在函数中 间接修改 外部变量 的原理 )