
C语言
文章平均质量分 90
giturtle
Stay hungry, stay foolish. Lu
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[C] 整数、浮点数在内存中的存储
内存中的存储内存数据类型1. 整型1.1 正整型大小端序验证机器字节序1.2 负整型1.3 无符号整型2. 浮点数内存我们需要先申请内存再存储,否则就是未定义行为。而存储的数据具有数据类型。数据类型我们已经学到的基本内置类型:整型家族charshortintlong浮点数家族floatdouble(long double)构造类型数组类型结构体类型...原创 2018-12-29 20:13:47 · 862 阅读 · 0 评论 -
C语言夺命十题?
程序的输出是什么?#include <stdio.h>#include <setjmp.h>#include <conio.h>#include <stdlib.h>int main(){ volatile int b = 3; if(setjmp(buf) != 0){ printf("%d\n",b); system("...原创 2019-04-26 02:37:52 · 409 阅读 · 0 评论 -
[C] 预处理指令
目录编译预处理详解预定义符号#define#和### 的使用## 的使用宏和函数注意事项条件编译编译常见IDE的编译器:VS的编译器为:MSVC。Linux的编译器为:gcc。C语言标准库提供的函数的定义,由系统中一个动态库提供:libc.so。C++语言标准库提供的函数的定义,由系统中一个动态库提供:libstdc++.so。预处理详解预定义符号__FILE__ ...原创 2019-03-12 18:53:15 · 506 阅读 · 0 评论 -
[C] 文件操作
文件什么是文件?程序文件数据文件文件类型文本文件二进制文件文件缓冲区文件指针文件指针变量的定义文件操作fopen什么是文件?磁盘上的文件是文件。文件与之前所讲的函数、数组等有明显的区别,文件是保存在磁盘中的,后者是保存在内存中的。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件程序文件包括:源程序文件(后缀为.c)目标文件(windows环境后缀为.obj)可执行程...原创 2019-03-07 23:55:53 · 531 阅读 · 0 评论 -
[C] 指针专项训练详解
int main() { //一维数组 int a[] = { 1,2,3,4 }; printf(&amp;amp;quot;%d\n&amp;amp;quot;, sizeof(a)); printf(&amp;amp;quot;%d\n&amp;amp;quot;, sizeof(a + 0)); printf(&amp;amp;quot;%d\n&amp;amp;quot;, sizeof(*原创 2019-03-16 00:14:00 · 280 阅读 · 0 评论 -
[C] 自定义类型专项(结构体、联合体、枚举)
自定义类型结构体结构体类型的声明结构的自引用结构体变量的定义和初始化结构体内存对齐结构体传参枚举结构体来自百度百科:结构体(struct)是由一系列具有相同类型、或不同类型的结构体成员构成的数据集合。结构体类型的声明struct tag{ member-list;}variable-list;要使用结构体,struct关键字一定不能省,除非通过重定义类型typedef可以做...原创 2019-02-14 22:53:36 · 450 阅读 · 2 评论 -
[C] 什么是函数指针
指针函数指针函数指针数组回调函数小引本篇博客旨在于上篇的基础上介绍一些指针在工程上的具体使用。函数指针函数指针数组回调函数原创 2019-01-31 21:46:53 · 224 阅读 · 0 评论 -
[C] 内存操作函数 与 字符处理函数
strerror要想使用strerror函数,首先需要知道errno的含义:错误码。默认情况下,errno值为0 ,即No error,无错误。strerror 函数根据返回的错误码,返回对应的错误信息。要想使用errno需要包含头文件&amp;amp;lt;error.h&amp;amp;gt;。在其基础上想使用strerror函数需要包含头文件&amp;amp;lt;string.h&amp;amp;gt;。默认样例如原创 2019-02-09 11:48:42 · 170 阅读 · 0 评论 -
[C] 数组指针、指针数组及数组传参
指针字符指针数组指针指针数组在指针的学习阶段,有不少同学都十分畏惧这个物什,甚至“谈指针色变”。其实对指针的不理解,其实本质上是对内存的不理解,本篇博客就从零开始、系统的来讲解指针这个话题。首先我们应该明确以下的一些基础常识:指针是一个变量,用来存放地址,地址唯一标识一块内存地址。指针的大小是固定的4 或 8个字节。(32或64位平台)指针是有类型的,指针的类型决定了指针加减整数运算...原创 2019-01-30 18:30:31 · 13671 阅读 · 4 评论 -
[C] 动态内存管理
动态内存管理为何存在内存分配动态内存函数mallocfreecallocrealloc常见错误柔性数组动态内存分配是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。C/C++定义了4个内存区间:代码区全局变量与静态变量区局部变量区,即栈区...原创 2019-02-16 13:26:29 · 588 阅读 · 0 评论 -
[C] 字符串库函数 及模拟实现
实现strlenC语言中的函数分为两个大类:库函数库函数中又分为:标准库 / 第三方库自定制函数在本篇博客中,我们就深入函数基理,解剖函数功能。运用基本代码模拟实现各个函数,客观的看看函数是如何实现和运作的。strlen[strlen的官方文档]:http://www.cplusplus.com/reference/cstring/strlen/?kw=strlen函数的作用...原创 2019-02-02 21:49:16 · 270 阅读 · 0 评论 -
[C] 内存中类型的存储典例详解
典例 1:#include &amp;amp;lt;stdio.h&amp;amp;gt;int main(){ char a= -1; signed char b=-1; unsigned char c=-1; printf(&amp;quot;a=%d,b=%d,c=%d&amp;quot;,a,b,c); return 0;}典例 2:#include &amp;amp原创 2019-01-04 21:49:26 · 234 阅读 · 0 评论 -
宏 实现 sizeof
sizeof操作符其实就是判断元素的字节数,那么很容易联想到指针的偏移量,所以尝试使用下面这种方式实现:#define my_sizeof(x) ((&x + 1) - &x)但问题是,无论如何输出都是1,为什么呢?因为指针减法的结果是元素个数而不是字节。,所以只需强转为按字节计算即可。#define my_sizeof(x) ((char*)((&x) + 1) ...原创 2019-09-11 10:56:44 · 601 阅读 · 0 评论