C语言中的那些库函数(持续更新中)

Posted 乞力马扎罗的雪CYF

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中的那些库函数(持续更新中)相关的知识,希望对你有一定的参考价值。

1.【exit()】

        exit是在调用处强行退出程序,运行一次程序就结束。exit(0)表示正常退出。exit(1)表示异常退出,这个1是返回给操作系统的。无论是写在main函数中,还是在其他函数中,都是程序退出。一般都是认为0是正常退出、其他数字是异常退出。所在的头文件是stdlib.h.  返回值的意义其实同main函数中的return一样,零表示正常,非零表示异常。

2.【memset】

函数的声明为:memset(void *, int, size_t n)。功能是将void *所指向的某一块内存(大小由size_t指定,可以使用sizeof函数计算)中的首n个字节的内容全部设置为int值。这个函数通常为新申请的内存做初始化工作。而如果是在链表中,当我们申请一个新的节点,也会使用这个函数来初始化这个节点。示例代码如下:

#include "stdio.h"
#include "string.h"

int main(int argc,const char* argv[]){

    char str[] = "abcde";
    printf("%s\n",str);
    memset(str, 0, strlen(str));
    printf("%s\n",str);

    return 0;
}

打印结果如下:
技术分享

可以看到其实是把数组置空了,而不是把数组里面的元素每个置为0.

#include "stdio.h"
#include "string.h"

int main(int argc,const char* argv[]){

    char str[] = "abcde";
    printf("%s\n",str);
    memset(str, ‘0‘, strlen(str));
    printf("%s\n",str);

    return 0;
}
打印结果如下:

技术分享

在这里是把数组中的元素都替换为字符‘0’。


【3.malloc】

       需要包含头文件stdlib.h。函数声明为 void *malloc(int size). malloc向系统申请分配size个字节的内存空间。返回类型为void *类型。void*表示未确定类型的指针。可以强制转换为任何其他类型的指针,如果不进行类型转换就会报错。malloc只是进行分配内存,并没有对内存进行初始化,所以得到的一片新内存中,值将是随机的。

示例代码如下:

#include "stdio.h"
#include "string.h"
#include "stdlib.h"

int main(int argc,const char* argv[]){

    char *p;

    p = (char *)malloc(sizeof(char));
    if(p)
        printf("内存分配地址: 0x%x\n",p);
    else
        printf("分配内存失败!\n");
    free(p);

    return 0;
}

打印结果如下:

技术分享

上面的代码中我其实只是分配了一个char字符的空间。如果想要n个字符,直接如下:(char *)malloc(n * sizeof(char))即可。


【4.sizeof】

计算空间的字节数。可以对数据类型、变量进行计算。实际上,sizeof计算对象的大小也是转换成对其对象类型的计算。也就是说,同种类型的不同对象其sizeof值都是一致的。示例代码如下:

#include "stdio.h"
#include "string.h"
#include "stdlib.h"

int main(int argc,const char* argv[]){


    int a[10];
    //因为每个int型占用4个字节
    printf("数组占用字节:%d\n",sizeof(a));

    printf("char占用字节:%d,int占用字节:%d,double占用字节:%d\n",sizeof(char),sizeof(int),sizeof(double));

    int *p;
    //可以看到,在这里一个指针占8个字节
    printf("指针占用字节:%d\n",sizeof(p));

    char *str1 = "abcde";
    //这里打印的也是一个指针,注意char是我们编程能用的最小数据类型
    printf("字符串1占用字节 :%d\n",sizeof(str1));

    char str2[] = "iiii";
    //这里打印数组的长度
    printf("字符串2占用字节:%d\n",sizeof(str2));

    return 0;
}

打印结果如下:

技术分享



















以上是关于C语言中的那些库函数(持续更新中)的主要内容,如果未能解决你的问题,请参考以下文章

工作学习中的一些小的收获(持续更新)

C语言面试题目汇总(持续更新)

C语言中 变量作用域的区别

C++/C 使用过程中的经验总结荟萃(持续更新)

C++/C 使用过程中的经验总结荟萃(持续更新)

C++/C 使用过程中的经验总结荟萃(持续更新)