C语言细节

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.运算中的临时变量

  

  强制类型转换分为四个步骤

  1. 在另一个地方找一个内存构建一个临时变量
  2. 将转化的值保存在临时变量中
  3. 将临时变量的值付给转化后的变量
  4. 销毁临时变量

  

原文地址:https://www.cnblogs.com/a-lai/p/7782326.html