直接和间接访问

举报
无敌清风蓝 发表于 2023/08/30 11:35:17 2023/08/30
936 0 0
【摘要】 直接和间接访问

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

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。