C语言指针详解

指针

问题: 指针是什么?

简单来说就是我们使用指针变量,通过这个指针变量访问该数值

请看下面的示例代码

int num = 7;

// 创建指针变量
int *p = &num ;

printf("%d\n", *p);

在上述代码中,可以看出指针变量声明的方法及如何创建指针

指针变量的声明(声明指针时类型一定要相同,避免一些错误)


类型 *指针变量名 = &变量名 其中&是取地址符的意思

下面通过简单示例来演示指针的基本使用方法

int a = 1, b = 5;
swap(int &a, &b); // 调用函数

void swap(int *a, int *b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
    
    printf("a = %d\nb = %d\n", *a, *b);
}

// result: a = 5, b = 1

在上面代码中,函数声明我们使用了地址符指向了两个值,在函数中,我们通过一个临时变量实现交换变量。试想下,如果我们没有通过指针来实现交换,会成功么?

下面是我没有指针指向变量而意料之外的错误

swap(int a, int b);

void swap(int a, int b)
{
    int temp = a;
    a = b;
    b = temp;
    
    printf("a = %d\nb = %d\n", a, b)
}

// result: a = 1, b = 1

通过上面测试得知,这样在发生转换时,不可以得到我们想要的结果

你可能感兴趣的:(c)