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:59 编辑
指针比较关键的地方有两个:取变量地址 和 取地址中存储的数据
指针也是一种数据类型,有关指针的内容可以参考:逆向基础笔记二十 汇编 指针(一)
如果不嫌弃,看完应该能有所收获(自我推销.jpg)
{:301_978:} 你可以这样理解void test(int a1[], int b1[])// 相当于 *a1=&a,*b1=&b
{
int temp = a1;
a1 = b1;
b1 = temp;
} 括号里没有解引用,只是表明a1,b1是整型指针 int* a1 = &a; // 取变量地址
int temp = *a1;// 取地址中存储数据
页:
[1]