C语言中不同类型的指针有哪些?


指针是一个存储另一个变量地址的变量。

指针的语法如下:

pointer = &variable;

指针类型

有八种不同的指针类型,如下所示:

  • 空指针

  • 空指针

  • 野指针

  • 悬空指针

  • 复杂指针

  • 近指针

  • 远指针

  • 巨大指针

空指针

通过在指针声明时赋值为 null 来创建一个空指针

当您不为指针分配任何地址时,此方法很有用。空指针始终包含值 0。

示例

以下是空指针的 C 程序:

 在线演示

#include <stdio.h>
int main(){
   int *ptr = NULL; //null pointer
   printf("The value inside variable ptr is:
%d"
,ptr);    return 0; }

输出

执行上述程序时,会产生以下结果:

The value inside variable ptr is:
0

空指针

它是一个没有关联数据类型的指针。空指针可以保存任何类型的地址,并且可以转换为任何类型。

它也称为通用指针,没有任何标准数据类型。

它使用关键字 void 创建。

示例

以下是空指针的 C 程序:

 在线演示

#include <stdio.h>
int main(){
   void *p = NULL; //void pointer
   printf("The size of pointer is:%d
"
,sizeof(p)); //size of p depends on compiler    return 0; }

输出

执行上述程序时,会产生以下结果:

The size of pointer is:8

野指针

野指针也称为未初始化指针。因为它们指向某个任意内存位置,并且可能导致程序崩溃或行为异常。

这种类型的 C 指针效率不高。因为它们可能指向某个未知的内存位置,这可能会在我们的程序中造成问题。这可能导致程序崩溃。

建议在使用野指针时要谨慎。

示例

以下是野指针的 C 程序:

#include <stdio.h>
int main(){
   int *p; //wild pointer
   printf("
%d"
,*p);    return 0; } Process returned -1073741819 (0xC0000005) execution time : 1.206 s Press any key to continue i.e. you wont get output, some compilers show error message at output

更新时间: 2023-09-13

32K+ 浏览量

启动你的职业生涯

通过完成课程获得认证

开始学习
广告