void指针和NULL指针

简介: 一、void指针二、NULL指针三、NULL不是NUL

void指针和NULL指针

 

内容介绍:

一、void指针

二、NULL指针

三、NULL不是NUL

 

 

一、void指针


字面意思就是无类型

void指针我们把它称之为通用指针,就是可以指向任意类型的数据。也就是说,任何类型的指针都可以赋值给void指针。

 

案例1

#include <stdio .h>

int main( )

{

void a ;

return 0;

}

运行报错:

gcc test1.c && ./a.out

testl.c:1nFunction'main

test1.c :5:error: variable or field a decLared void

 

案例2

#incLude <stdio. h>

int main( )

{

int num = 1024 ;

int *pi = &num;

char *ps = "FishC";

void *pv;

 

pv = pi;

printf("pi:%p, pv:%p\n", pi, pv);

 

pv = ps;

printf("ps:%p, pv:%p\n", pS, pv) ;

 

return 0;

}

运行:

gcc test2.c && ./a.out

结果:

0S8T08X0:Ad10S8t08x0d

OE8x0Ad0E28P4qx0:Td

说明这样取地址是可行的

 

#include <stdio.h>

int main( )

{

int num = 1024;

int *pi = &num ;

char *ps = "FishC" ;

void * pv;

pv = pi;

printf("pi:%p, pv:%p\n" ,pi, pv);

printf("pv:%d\n"*(int *)pv);

ps = (char *)pv;

pv = ps;

printf("ps:ppv:ap\n"ps, pv) ;

printf("*pv:%s\n"(char *) pv) ;

return 0 ;

}

 

 

二、 NULL指针

定义null指针

#define NULL( (void*)0)

 

良好的编程习惯:

当你还不清楚要将指针初始化为什么地址时,请将它初始化NULL;在对指针进行解引用时,先检查该指针是否为NULL。这种策略可以为你今后编写大型程序节省大量的调试时间。

 

#include <stdio. h>

int main( )

{

int *p1;

int *p2 = NULL;

//巡控指针

printf("%d\n", *p1);

printf("%d\n", *p2);

return 0;

}

运行:

gcc test3.c && ./a.out

结果:

304989057

Segmentation fault

 

 

三、NULL不是NUL

NULL用于指针和对象,表示控制,指向一个不被使用的地址;'\0'表示字符串的结尾。

相关文章
|
7月前
C中的NULL指针
【2月更文挑战第6天】C中的 NULL指针。
59 2
|
7月前
|
编译器 C语言
void的指针类型
void的指针类型
47 0
|
7月前
C中的NULL指针
C中的NULL指针。
45 2
|
7月前
|
存储 安全 C语言
void指针类型详解
void指针类型详解
79 2
|
7月前
C中的NULL指针
C中的NULL指针。
26 1
|
7月前
|
存储 安全 C语言
深入解析void指针类型
深入解析void指针类型
118 0
|
7月前
|
算法 安全 程序员
C++ “万能血“ void*指针
C++ “万能血“ void*指针
108 1
|
7月前
|
C语言
Void 指针类型
Void 指针类型
41 0
|
7月前
|
编译器 C语言
【C语言】深入理解NULL指针
【C语言】深入理解NULL指针
167 0
|
7月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之从MySQL同步数据到Doris时,历史数据时间字段显示为null,而增量数据部分的时间类型字段正常显示的原因是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。