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
指针变量总是指向相同数据类型的变量。例如:
float a;
int *ptr = &a; // ERROR, type mismatch
在声明指针变量时,如果它没有被赋给任何东西,那么它包含垃圾值。因此,建议为其赋值NULL
,
在 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 程序。
阅读更多: