C语言标准库——<stdlib.h>
创始人
2025-01-16 03:35:52
0

目录

一、库变量

二、库宏

三、库函数

3.1 free()

3.2 malloc()

3.3 calloc()

3.4 atoi()

3.5 atol()

3.6  rand()

3.7  exit()

3.8  getenv()

stdlib .h 头文件定义了四个变量类型、一些宏和各种通用工具函数。

一、库变量

变量

描述

size_t

这是无符号整数类型,它是 sizeof 关键字的结果

wchar_t

这是一个宽字符常量大小的整数类型。

div_t

这是 div 函数返回的结构。

ldiv_t

这是 ldiv 函数返回的结构。

二、库宏

描述

NULL

是一个空指针常量的值。

EXIT_FAILURE

是 exit 函数失败时要返回的值。

EXIT_SUCCESS

是 exit 函数成功时要返回的值。

RAND_MAX

是 rand 函数返回的最大值。

MB_CUR_MAX

表示在多字节字符集中的最大字符数,不能大于 MB_LEN_MAX。

三、库函数

3.1 free()

描述:是C语言中释放内存空间的函数,通常与申请内存空间的函数malloc()结合使用,可以释放由 malloc()、calloc()、realloc() 等函数申请的内存空间。

声明void free(void *ptr)

参数ptr -- 指针指向一个要释放内存的内存块,该内存块之前是通过调用 malloc、calloc 或 realloc 进行分配内存的。

#include    int main() {        char *str;    /* 最初的内存分配 */        str = (char *) malloc(15);  	       strcpy(str, "hello world");        printf("String = %s,  Address = %p\n", str, str);   /* 重新分配内存 */  	       str = (char *) realloc(str, 25);        strcat(str, ".com");       printf("String = %s,  Address = %p\n", str, str);   /* 释放已分配的内存 */ 	        free(str);   return(0); }

3.2 malloc()

描述:分配所需的内存空间,并返回一个指向它的指针。

声明void *malloc(size_t size)

参数size -- 内存块的大小,以字节为单位。

#include  #include  #include    int main() {    char *str;      /* 最初的内存分配 */    str = (char *) malloc(15);    strcpy(str, "Hello");    printf("String = %s,  Address = %u\n", str, str);      /* 重新分配内存 */    str = (char *) realloc(str, 25);    strcat(str, "World");    printf("String = %s,  Address = %u\n", str, str);      free(str);      return(0); }

3.3 calloc()

描述:在内存的动态存储区中分配num个长度为size的连续空间,函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。

声明void *calloc(size_t nitems, size_t size)

参数nitems -- 要被分配的元素个数; size -- 元素的大小。

#include  #include    int main() {    int i, n;    int *a;      printf("要输入的元素个数:");    scanf("%d",&n);      a = (int*)calloc(n, sizeof(int));    printf("输入 %d 个数字:\n",n);    for( i=0 ; i < n ; i++ )     {       scanf("%d",&a[i]);    }      printf("输入的数字为:");    for( i=0 ; i < n ; i++ ) {       printf("%d ",a[i]);    }    free (a);  // 释放内存    return(0); }

3.4 atoi()

描述:把参数 str 所指向的字符串转换为一个整数(类型为 int 型)。

声明int atoi(const char *str)

参数str -- 要转换为整数的字符串。

#include  #include  #include   int main() {    int val;    char str[20];        strcpy(str, "666.666");    val = atoi(str);    printf("字符串值 = %s, 整型值 = %d\n", str, val);     strcpy(str, "hello world");    val = atoi(str);    printf("字符串值 = %s, 整型值 = %d\n", str, val);     return(0); }

3.5 atol()

描述:把参数 str 所指向的字符串转换为一个长整数(类型为 long int 型)。

声明long int atol(const char *str)

参数str -- 要转换为长整数的字符串。

#include  #include  #include   int main() {    long val;    char str[20];        strcpy(str, "666.666");    val = atol(str);    printf("字符串值 = %s, 长整型值 = %ld\n", str, val);     strcpy(str, "hello world");    val = atol(str);    printf("字符串值 = %s, 长整型值 = %ld\n", str, val);     return(0); }

3.6  rand()

描述:返回一个范围在 0 到 RAND_MAX 之间的伪随机数。

RAND_MAX 是一个常量,它的默认值在不同的实现中会有所不同,但是值至少是 32767。

声明int rand(void)

#include  #include  #include    int main() {    int i, n;    time_t t;    n = 5;    /* 初始化随机数发生器 */    srand((unsigned) time(&t));      /* 输出 0 到 99 之间的 5 个随机数 */    for( i = 0 ; i < n ; i++ ) {       printf("%d\n", rand() % 100);    }       return(0); }

3.7  exit()

描述:立即终止调用进程。任何属于该进程的打开的文件描述符都会被关闭,该进程的子进程由进程 1 继承,初始化,且会向父进程发送一个 SIGCHLD 信号。

RAND_MAX 是一个常量,它的默认值在不同的实现中会有所不同,但是值至少是 32767。

声明void exit(int status)

参数status -- 返回给父进程的状态值。

#include  #include   int main () { 	printf("程序的开头....\n"); 	 	printf("退出程序....\n"); 	exit(0);  	printf("程序的结尾....\n");  	return(0); }

3.8  getenv()

描述:从环境中取字符串,获取环境变量的值。getenv函数的返回值存储在一个全局二维数组里,当你再次使用getenv函数时不用担心会覆盖上次的调用结果。

声明char *getenv(const char *name)

参数name -- 包含被请求变量名称的 C 字符串。

#include  #include   int main(void)  {   char* s=NULL;   s=getenv("COMSPEC"); /* 获取 comspec 环境参数 */   printf("Command processor: %s\n",s);    return 0; }

相关内容

热门资讯

这一问题亟待解决!蜀山四川破解... 这一问题亟待解决!蜀山四川破解版安卓版辅助(辅助)本来确实有辅助教程(有挂细节)蜀山四川破解版安卓版...
第8分钟辅助!微信小程序蜀山辅... 第8分钟辅助!微信小程序蜀山辅助器,本来是有辅助app(有挂秘籍)1、首先打开微信小程序蜀山辅助器辅...
刚刚!万能游戏辅助器脚本(辅助... 刚刚!万能游戏辅助器脚本(辅助)确实是真的有辅助方法(有挂头条)1、万能游戏辅助器脚本透视辅助软件激...
4分钟辅助!广东闲来软件通用,... 4分钟辅助!广东闲来软件通用,好像有辅助神器(真实有挂)1、广东闲来软件通用破解器简单,广东闲来软件...
黑科技代打!边锋斗地主辅助微信... 黑科技代打!边锋斗地主辅助微信(辅助)一直真的有辅助方法(有挂功能)1)边锋斗地主辅助微信辅助插件:...
第6分钟辅助!榕城510k作弊... 第6分钟辅助!榕城510k作弊脚本,果然真的有辅助方法(有挂秘籍)1、这是跨平台的榕城510k作弊脚...
2026版方法!蘑菇云游破解版... 2026版方法!蘑菇云游破解版(辅助)真是真的是有辅助方法(有挂透视)亲,关键说明,蘑菇云游破解版透...
第四分钟辅助!新西楚辅助器,真... 第四分钟辅助!新西楚辅助器,真是是真的有辅助挂(有挂详细)1、下载好新西楚辅助器正确养号方法之后点击...
不少玩家反映!欢乐茶馆挂有没有... 不少玩家反映!欢乐茶馆挂有没有(辅助)总是真的是有辅助神器(真的有挂)1、欢乐茶馆挂有没有免费脚本咨...
第6分钟辅助!中至余干小程序辅... 第6分钟辅助!中至余干小程序辅助安装,真是存在有辅助脚本(有挂方式)该软件可以轻松地帮助玩家将中至余...