小甲鱼 P25 void指针和NULL指针

本文深入探讨了C语言中的两种特殊指针:void指针和NULL指针。void指针作为通用指针,可以指向任何类型的数据,但不宜直接解引用;而NULL指针则用于表示未指向任何数据的状态,初始化时使用,避免野指针风险。

小甲鱼 P25 void指针和NULL指针

 

  • void指针(尽量避免使用,容易出错)

void指针:通用指针。就是可以指向任意类型的数据,也就是说,任何类型的指针都可以赋值给void指针

#include <stdio.h>

int main(void)
{
	int num = 1024;
	int *pi = &num;
	char *ps = "Happy";
	void *pv;
	
	pv = pi;
	printf("pi:%p, pv:%p\n", pi, pv);
	
	pv = ps;
	printf("ps:%p, pv:%p\n", ps, pv);
	
	return 0;
}

结果:

 

 

  • 不要对void指针解引用,编译器搞不懂指向的数据是什么

字符串指针,打印时,不用解引用!!

(PS:字符串在C语言中规定,只需要指向字符串的起始地址,然后它就会一个字节一个字节地读下去,直到读到'\0',表示字符串的结束)

#include <stdio.h>

int main(void)
{
	int num = 1024;
	int *pi = &num;
	char *ps = "Happy";
	void *pv;
	
	pv = pi;
	printf("pi:%p, pv:%p\n", pi, pv);
	printf("*pv:%d\n", *(int *)pv);
	
	pv = ps;
	printf("ps:%p, pv:%p\n", ps, pv);
	printf("*pv:%s\n", (char *)pv);//字符串指针,打印时,不用解引用
	
	return 0;
}

结果:

 

 

  • NULL指针

NULL空指针:一个指针,不指向任何数据,指向一个不被使用的地址

#define NULL((void *)0)

当你还不清楚要将指针初始化什么地址时,请将它初始化NULL

#include <stdio.h>

int main()
{
	int *p1;
	int *p2 = NULL;
	
	printf("%d\n", *p1);//野指针,悬空指针,迷途指针 
	printf("%d\n", *p2);//对一个NULL指针解引用是非法的
}

 

### P25Q32 W25Q32 的规格对比 对于P25Q32W25Q32这两种型号的具体差异,虽然提供的参考资料未直接提及这些具体型号的信息[^1],通常这类命名方式常见于电子元件特别是存储器领域。 #### 型号前缀的意义 - **P系列**:一般代表特定制造商的产品线或是产品特性的一种分类。例如,在某些厂商中,“P”可能表示高性能(Performance)或者是针对便携设备优化的产品。 - **W系列**:同样作为一类产品的标识符。“W”有时指代宽温型(Wide Temperature Range),意味着该系列产品能够在更广泛的温度范围内稳定工作;也可能是其他特性的缩写,这取决于具体的生产厂商标准。 #### 后续编号解析 后续的数字组合如“25Q32”,通常是用来描述器件的主要参数: - “25”往往指的是电压等级或接口类型; - “Q”可以指示封装形式或其他技术属性; - “32”则多用于表达容量大小,即32Mb (兆位) 或者转换成MB后的相应数值。 由于缺乏关于这两个确切型号的技术文档支持,上述解释基于行业惯例推测而来。为了获得最准确的数据表技术细节建议联系官方渠道获取最新资料。 ```python # 示例代码展示如何通过网络请求获取元器件数据表(假设存在API服务) import requests def fetch_datasheet(part_number): url = f"https://example.com/api/part/{part_number}/datasheet" response = requests.get(url) if response.status_code == 200: return response.json() else: raise Exception(f"Failed to retrieve datasheet for {part_number}") try: p25q32_info = fetch_datasheet('P25Q32') w25q32_info = fetch_datasheet('W25Q32') except Exception as e: print(e) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值