C语言学习笔记_void&NULL

C语言学习笔记_void&NULL

API和库函数

API是操作系统系统的接口,用于获取操作系统提供的服务,如读写文件open、write等;

库函数是c语言对操作系统API的封装,如fopen、fwrite;

不同的操作系统具有不同的API,而库函数相同,具有一定的可移植性;

main函数的传参

int main(void);
int main(int argc, char **argv);
int main(int argc, char *argv[]);

调用main函数的父进程给main函数传参,并接收main函数的返回值;

参数如上所示,两个均可以使用;

argc表示参数的长度,argv是一个二维字符数组,保存字符串格式的参数;

void类型

void类型并不是空类型,只是表示暂时不确定此类型;

典型例子如malloc,此函数不确定申请的内存用于存放什么类型,所以返回值为void *

void类型通过强制类型转换成为一个具体类型;

NULL

NULL不是C语言关键字,本质上是一个宏定义:

#ifdef _cplusplus
#define NULL 0
#else
#define NULL (void *)0
#endif

在c++编译环境中,编译器预定义了一个宏_cplusplus,程序可以用条件编译来判断当前的编译环境是c++还是c;

上述定义表示,在c编译环境中,NULL表示指针变量,表示地址0,指向的数据类型为void;

这是因为地址0是操作系统管控的区域,如果不小心解引用了程序会报段错误,防止更改到有效数据;

posted @ 2020-07-20 23:06  樱花小猪  阅读(177)  评论(0编辑  收藏  举报