首页 > 文章列表 > C语言中*和&的区别及使用方法详解

C语言中*和&的区别及使用方法详解

c语言 * &
163 2024-04-23

在 C 语言中, 用于解引用指针,返回指向的值;& 用于取地址,返回指向该变量的指针。 通常用于访问或修改指针所指向的值;& 通常用于创建指针或传递引用。

C语言中*和&的区别及使用方法详解

C 语言中 * 和 & 的区别及使用方法详解

在 C 语言中,*& 运算符用于处理指针,它们之间有着重要的区别。

运算符 *(解引用)

  • * 运算符用于解引用指针,返回指针所指向的值。
  • 语法:*ptr,其中 ptr 是指向变量的指针。

示例:

int *ptr;
int value = 10;
ptr = &value; // 为 ptr 分配 value 的地址
*ptr = 20; // 将 value 的值修改为 20

运算符 &(取地址)

  • & 运算符用于取变量的地址,返回指向该变量的指针。
  • 语法:&var,其中 var 是一个变量。

示例:

int value = 10;
int *ptr = &value; // 为 ptr 分配 value 的地址

区别

  • * 解引用指针,& 取变量地址。
  • * 返回所指向的值,& 返回指向该值的指针。
  • & 通常在创建指针变量或将引用作为函数参数传递时使用。
  • * 通常在访问指针所指向的值或修改该值时使用。

实战案例

以下是一个使用 *& 运算符的实战案例:

#include <stdio.h>

int main() {
    int value = 10;
    int *ptr = &value; // 为 ptr 分配 value 的地址

    // 使用 * 解引用指针并打印值
    printf("Value: %dn", *ptr);

    // 使用 * 修改指针所指向的值
    *ptr = 20;

    // 再次使用 * 打印修改后的值
    printf("Modified value: %dn", *ptr);

    return 0;
}

输出:

Value: 10
Modified value: 20