>백엔드 개발 >C++ >C 언어에서 *와 &의 응용 시나리오와 차이점을 마스터하세요.

C 언어에서 *와 &의 응용 시나리오와 차이점을 마스터하세요.

WBOY
WBOY원래의
2024-04-03 16:54:02830검색

포인터(*)는 변수 주소를 저장하고 변수 값에 액세스하고 수정하는 데 사용됩니다. 주소 연산자(&)는 포인터에 할당되거나 함수에 전달될 수 있는 변수의 주소를 가져옵니다. 차이점은 포인터는 역참조될 수 있지만 주소 연산자 자체는 변수 값에 액세스할 수 없다는 것입니다.

C 언어에서 *와 &의 응용 시나리오와 차이점을 마스터하세요.

응용 시나리오 및 C 언어의 포인터(*)와 주소 연산자(&)의 차이점

포인터(*)

  • 선언: * 기호 사용 , 그 뒤에 변수 이름이 옵니다 * 符号,后面跟变量名
  • 作用:存储变量的地址
  • 用途:

    • 访问和修改变量的值(通过解引用)
    • 传递变量的地址(作为函数的参数)
    • 实现动态内存分配

地址运算符(&)

  • 声明:使用 & 符号,前面是变量名
  • 作用:获取变量的地址
  • 用途:

    • 将变量的地址赋值给指针
    • 传递变量的地址(作为函数的参数)

区别

  • 指针指向变量的地址,而地址运算符获取变量的地址。
  • 指针可以解引用以访问和修改变量的值,而地址运算符本身不能访问变量的值。

实战案例

以下代码示例演示了指针和地址运算符在 C 语言中的使用:

#include <stdio.h>

int main() {
    int x = 10;

    // 获取 x 的地址并将其赋值给指针 p
    int *p = &x;

    // 使用解引用运算符 * 访问和修改 x 的值
    *p += 5;

    // 打印修改后的 x 值
    printf("x: %d\n", x); // 输出:15

    // 传递 p 指针作为函数的参数
    myFunction(p);

    return 0;
}

void myFunction(int *ptr) {
    // 修改指向值的变量
    *ptr = 20;
}

在这个示例中:

  • *p 解引用指针 p 并访问指向的变量 x。
  • 函数 myFunction 接收指向 x 的指针 p,并通过 *ptr
기능: 🎜 변수의 주소를 저장합니다 🎜🎜🎜🎜 목적: 🎜🎜🎜🎜 변수의 값에 액세스하고 수정합니다(역참조를 통해) 🎜🎜 변수의 주소를 다음과 같이 전달합니다. 함수의 매개변수) 🎜 🎜동적 메모리 할당 구현🎜🎜🎜🎜🎜🎜주소 연산자 (&)🎜🎜🎜🎜🎜선언: 🎜변수 이름 앞에 & 기호를 사용하세요🎜🎜 🎜기능: 🎜변수의 주소 가져오기 🎜🎜🎜🎜사용: 🎜🎜🎜🎜변수의 주소를 포인터에 할당 🎜🎜변수의 주소를 함수의 매개변수로 전달 🎜🎜🎜🎜🎜 🎜Difference🎜🎜🎜🎜포인터는 변수의 주소를 가리키는 반면, 주소 연산자는 변수의 주소를 가져옵니다. 🎜🎜포인터는 변수 값에 액세스하고 수정하기 위해 역참조될 수 있지만 주소 연산자 자체는 변수 값에 액세스할 수 없습니다. 🎜🎜🎜🎜실용 사례🎜🎜🎜다음 코드 예제는 C 언어에서 포인터 및 주소 연산자의 사용을 보여줍니다. 🎜rrreee🎜이 예제에서는: 🎜🎜🎜*p 포인터 p를 역참조하고 변수 x가 가리켰습니다. 🎜🎜함수 myFunction은 x를 가리키는 포인터 p를 수신하고 *ptr를 통해 x의 값을 수정합니다. 🎜🎜

위 내용은 C 언어에서 *와 &의 응용 시나리오와 차이점을 마스터하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.