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 won’t get output, some compilers show error message at output
广告