• 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是操作系统管控的区域,如果不小心解引用了程序会报段错误,防止更改到有效数据;

  • 相关阅读:
    passwd: Have exhausted maximum number of retries for service
    将单个文件上传到多机器工具
    leetcode-Jump game II
    LeetCode--Combination Sum --ZZ
    Leetcode- Find Minimum in Rotated Sorted Array-ZZ
    leetcode-permutation sequence
    leetcode-next permutation
    LeetCode-Subsets ZZ
    leetcode-Restore IP Addresses-ZZ
    leetcode-palindrome partitioning-ZZ
  • 原文地址:https://www.cnblogs.com/sakurapiggy/p/13350629.html
Copyright © 2020-2023  润新知