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;
}

打印结果如下:

时间: 2024-10-11 21:43:51

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

C 语言的若干问题(持续更新中)

mnesia在频繁操作数据的过程可能会报错:** WARNING ** Mnesia is overloaded: {dump_log, write_threshold},可以看出,mnesia应该是过载了.这个警告在mnesia dump操作会发生这个问题,表类型为disc_only_copies .disc_copies都可能会发生. 如何重现这个问题,例子的场景是多个进程同时在不断地mnesia:dirty_write/2 mnesia过载分析 1.抛出警告是在mnesia 增加dump

一些实战中的小技巧 (持续更新中)

经常使用的目录或命令,使用alias,减少打字数量 # 显示所有的别名 alias -p # 创建 alias gopro='cd /root/username/dir/project' alias pidpy='ps -ef | grep python' # 取消 unalias gopro 原文地址:https://www.cnblogs.com/wangjiale1024/p/11293772.html

Hello World!的各种编程语言程序(持续更新中……)

对于很多学习编程语言新手们,可能接触到的第一个程序就是"Hello World"的输出程序,笔者想在此篇简短的博文中介绍关于各种编程语言的"Hello World"输出程序. 至今,笔者仅仅接触过C++和Python两种编程语言,而且都仅仅是新手,所以此次只能写C++和Python两种语言的"Hello World"输出程序,但此篇博文会随着笔者学习的编程语言种类的增多而不断完善. 1. C++语言 #include<iostream>

Atom使用记录(持续更新中)

部分内容取自:http://www.jianshu.com/p/dd97cbb3c22d,我自己也在使用,持续更新中 Atom安装插件在窗口中File---Setting---install 在里面进行搜索就行. minimap: 为Atom加上一个代码预览地图,就想sublime中右侧的缩略图一样,效果如图. Emmet(和sublime一样的) simplified-chinese-menu:Atom的简体中文语言包,完整汉化,兼容所有已发布的版本Atom. autoclose-html:h

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(1)-前言与目录(持续更新中...)

演示地址 帐号:admin 密码:admin123 请不要删除用户避免他人无法体验(文章中已经附带源码,源码开放到17讲下载) 快捷地址(QQ群37509873也有相应的下载):   第2讲源码下载  密码:wg0i 最新代码生成器+17讲源码下载 密码:n2ji SwfUpload在MVC4下多文件上传 密码:0ntz 也可以有偿获取一份最新源码联系QQ:729994997价格500 -------------------------------------------------------

Android 系统中,那些能大幅提高工作效率的 API 汇总(持续更新中...)

前言 "条条大路通罗马."工作中,实现某个需求的方式往往不是唯一的,这些不同实现方式不仅表现在代码质量上,还影响着我们的工作效率.就像,在 Android 系统中,总有那么一些鲜为人知的 API 能够减少我们很多零碎的工作量.于是,就想凭着一些经验,整理一些常用的,找个地方归纳总结,也供日后翻阅. getResources().getIdentifier(String name, String defType, String defPackage) 根据资源名称获取资源 id.正常情况

[系列汇总] - 二十三种设计模式(持续更新中&hellip;)

摘要 最近在读GOF的Design Patterns: Elements of Reusable Object-Oriented Software(设计模式:可复用面向对象软件的基础),学习前辈们的经验来增加自己的编码设计能力.在学习的过程中,会把我从书上学到的知识以及自己的理解写到这里.一方面能够巩固自己学到的东西同时方便以后的复习,另一方面是希望能够帮助到那些跟我一样不大了解设计模式的人. 我理解的设计模式不是一套固定的代码,更多的是一种设计理念.它能够帮助我们解决特定的设计问题,使我们的程

PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)

PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++:      欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/problem-sets/994805046380707840/problems 目录 (点击对应题目即可进入相应题解--小声BB--) L1-001 Hello World (5 分) L1-002 打印沙漏 (20 分) L1-003 个位数统计 (15 分) L1-004 计算摄氏温度 (5

前端面试题总结——Html5(持续更新中)

前端面试题总结--H5(持续更新中) 1.HTML5 为什么只需要写 <!DOCTYPE HTML>? HTML5 需要doctype来规范浏览器的行为,让浏览器按照它们应该的方式来运行:HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型. 2.HTML5的form如何关闭自动完成功能? 给不想要提示的 form 或某个 input 设置为 autocomplete=off. 3.HTML5 中如何嵌入音频? 当前,audio 元素支持三种音频格式:&l

前端面试题总结——HTML(持续更新中)

前端面试题总结--HTML(持续更新中) 1.什么是HTML? HTML:HyperText Markup Language超文本标记语言 2.XHTML和HTML有什么区别 HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的标记语言 3.简述一下你对HTML语义化的理解? html语义化让页面的内容结构化,结构更清晰,便于对浏览器.搜索引擎解析; 前端学习圈:767273102 ,从最基础的HTML+CSS+JavaScript.jQuery,Ajax,node,angula