C语言中的指针有哪些不同类型?
指针是一个变量,用于存储另一个变量的地址。
指针的语法如下-
pointer = &variable;
指针类型
有八种不同类型的指针,如下所示:
空指针
虚空指针
野指针
悬空指针
复合指针
近指针
远指针
巨大的指针
空指针
通过在指针声明时分配空值来创建空指针。
当您不给指针分配任何地址时,此方法很有用。空指针始终包含值0。
例子
以下是空指针的C程序-
#include <stdio.h>int main(){
int *ptr = NULL; //空指针
printf("The value inside variable ptr is:\n%d",ptr);
return 0;
}
输出
执行以上程序后,将产生以下结果-
The value inside variable ptr is:0
虚空指针
它是一个没有关联数据类型的指针。空指针可以保存任何类型的地址,并且可以类型转换为任何类型。
它也称为通用指针,没有任何标准数据类型。
它是通过使用关键字void创建的。
例子
以下是void指针的C程序-
#include <stdio.h>int main(){
void *p = NULL; //空指针
printf("The size of pointer is:%d\n",sizeof(p)); //p的大小取决于编译器
return 0;
}
输出
执行以上程序后,将产生以下结果-
The size of pointer is:8
野指针
通配指针也称为未初始化的指针。因为,它们指向任意的内存位置,并且可能导致程序崩溃或性能下降。
这种类型的C指针效率不高。因为,它们可能指向某些未知的内存位置,这可能会导致我们的程序出现问题。这可能导致程序崩溃。
建议在使用野指针时要谨慎。
例子
以下是用于野指针的C程序-
#include <stdio.h>int main(){
int *p; //野指针
printf("\n%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
以上是 C语言中的指针有哪些不同类型? 的全部内容, 来源链接: utcz.com/z/351185.html