C 语言中指针变量的声明、初始化和使用

原文:https://www.studytonight.com/c/declaring-and-initializing-pointer.php

在本教程中,我们将学习如何声明、初始化和使用指针,以及空指针及其用法。

继续阅读前,请检查以下主题:

C 指针变量的声明

指针声明的一般语法是,

datatype *pointer_name;

指针的数据类型和指针变量所指向的变量必须相同。

C 指针变量的初始化

指针初始化是将变量的地址分配给指针变量的过程。它包含相同数据类型的变量的地址。在 C 语言中地址运算符 &用于确定一个变量的地址。&(紧接在变量名之前)返回与之关联的变量的地址。

int a = 10;
int *ptr;       //pointer declaration
ptr = &a;       //pointer initialization

initialize pointer variable in C

指针变量总是指向相同数据类型的变量。例如:

float a;
int *ptr = &a;       // ERROR, type mismatch

在声明指针变量时,如果它没有被赋给任何东西,那么它包含垃圾值。因此,建议为其赋值NULL

set pointer variable value

在 C 中,被赋予NULL值的指针称为 空指针。

 int *ptr = NULL;

使用指针或指针的解引用

一旦指针被分配了变量的地址,为了访问变量的值,使用间接运算符取消引用运算符 *,指针被取消引用。为了更好地理解,请考虑以下示例。

#include <stdio.h>

int main()
{
    int a;  
    a = 10;
    int *p = &a;     // declaring and initializing the pointer

    //prints the value of 'a'
    printf("%d\n", *p);  
    printf("%d\n", *&a);  
    //prints the address of 'a'
    printf("%u\n", &a);    
    printf("%u\n", p);     

    printf("%u\n", &p);    //prints address of 'p'

    return 0;
}

10 10 3795480300 3795480300 3795480304

使用指针时要记住的点

  • 声明/初始化指针变量时,*表示变量是指针。

  • 任何变量的地址都是通过在变量名前面加上&符号&给出的。

  • 指针变量存储变量的地址。

  • 声明int *a并不意味着a将包含一个整数值。这意味着a将包含存储整数值的变量的地址。

  • 使用指针变量*访问存储的某个地址的值。这里*可以理解为的值。

既然我们已经学习了 C 语言中指针的基础知识,那么你可以使用指针来查看一些 C 程序

阅读更多: