C 语言中有哪些不同类型的指针?
cserver side programmingprogramming
指针是一个存储另一个变量地址的变量。
指针的语法如下:
pointer = &variable;
指针的类型
指针有八种不同的类型,如下所示 -
Null pointer
Void pointer
Wild pointer
Dangling pointer
Complex pointer
Near pointer
Far pointer
Huge pointer
Null 指针
在声明指针时分配空值即可创建 Null 空指针。
当您没有为指针分配任何地址时,此方法非常有用。Null 空指针始终包含值 0。
示例
以下是空指针的 C 程序 -
#include
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 空指针
Void 空指针没有与其关联的数据类型。空指针可以保存任何类型的地址,并且可以强制转换为任何类型。
它也被称为通用指针,没有任何标准数据类型。
使用关键字 void 创建空指针。
示例
以下是空指针的 C 程序 -
#include
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
Wild 指针
Wild 指针也称为未初始化指针。因为它们指向任意内存位置,可能导致程序崩溃或行为异常。
这种类型的 C 指针效率不高。因为它们可能指向某个未知的内存位置,这可能会导致程序出现问题,最终导致程序崩溃。
建议在使用Wild 指针时务必谨慎。
示例
以下是Wild 指针的 C 程序 -
#include
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
相关文章
C 语言中文件处理的基本知识
C 程序重新声明全局变量
递归冒泡排序的 C 程序
C 语言中 scanf() 和 gets() 之间的区别
C 语言中 while(1) 和 while(0) 的区别
分治递归的高级主定理
用 C 语言计算没有连续 1 的二进制字符串的数量
C 中结构成员数组的深度复制
C 程序演示可变长度数组的用法
C 程序用于找出小于给定值的 AND、OR 和 XOR 运算的最大值
打印
下一节 ❯❮ 上一节