zds212 发表于 2021-5-9 13:32

cpp的指针为什么函数()里面已经解引用,函数体内还要解引用

本帖最后由 zds212 于 2021-5-9 20:54 编辑

指针函数

#include<iostream>
using namespace std;
#include<string>


void test(int *a1,int *b1)// 相当于 *a1=&a,*b1=&b
{
    int temp = *a1;   
    *a1 = *b1;   
    *b1 = temp;
}



int main()
{
    int a = 1;
    int b = 2;
    test(&a, &b);   //传入a和b的地址到test的函数里
    cout << a << "\n" << b << "\n";
    system("pause");
      return 0;
}


----------------------------------------------------
这一段里面 函数体内的解引用不太理解   
void test(int *a1,int *b1)// 相当于 *a1=&a,*b1=&b
{
    int temp = *a1;   
    *a1 = *b1;   
    *b1 = temp;
}
------------------------------
@苏紫方璇

lyl610abc 发表于 2021-5-9 13:53

本帖最后由 lyl610abc 于 2021-5-9 13:59 编辑

指针比较关键的地方有两个:取变量地址 和 取地址中存储的数据
指针也是一种数据类型,有关指针的内容可以参考:逆向基础笔记二十 汇编 指针(一)
如果不嫌弃,看完应该能有所收获(自我推销.jpg)
{:301_978:}

ffggddss 发表于 2021-5-9 14:00

你可以这样理解void test(int a1[], int b1[])// 相当于 *a1=&a,*b1=&b
{
        int temp = a1;
        a1 = b1;
        b1 = temp;
}

无敌小车 发表于 2021-5-9 14:25

括号里没有解引用,只是表明a1,b1是整型指针

demo_plus 发表于 2021-5-9 14:57

int* a1 = &a;   // 取变量地址
int temp = *a1;// 取地址中存储数据
页: [1]
查看完整版本: cpp的指针为什么函数()里面已经解引用,函数体内还要解引用