1.C谁调用了main函数
Linux执行一个程序就是创建一个新进程,然后把这个程序丢到这个进程中执行直到结束。Linux通过./task运行程序,新进程作为命令进程的一个子进程执行。main函数的返回值最终会返回给父进程。父进程的参数传递给子进程。
2.void类型的本质
void的意思是一个变量还不知道类型,不确定类型。比如void a说明a一定有确定类型,只是还不知道a的具体类型。
void一般用于描述一段还未具体使用的内存。。
3.C语言中的NULL
C语言的NULL不是关键字,而是宏定义,在C/C++标准中NULL是这样定义的
#ifdef _cplusplus
#define NULL 0
#else
#define NULL (void *)0
#endif
在C语言中NULL本质是0,但是这个0并不是按数字解析,而是按0x00000000,代表0地址。(void *)0代表一个指针,这个指针变量占4个字节,指向0地址开始的一段内存。
(一般判断一个变量是否为NULL 要写成(NULL == P))
4.运算中的临时变量
强制类型转换分为四个步骤
- 在另一个地方找一个内存构建一个临时变量
- 将转化的值保存在临时变量中
- 将临时变量的值付给转化后的变量
- 销毁临时变量