
C进阶
文章平均质量分 71
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。要想学好编程就应该深入了解计算机底层的东西
云疏不知数
一个人知道自己为了什么而活,他就能够忍受任何一种生活----尼采
展开
-
8.判断大端还是小端存储
大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中。验证当前机器是大端还是小端存储#include <stdio.h>int check_sys(){ int i = 1; return (*(char*)&i);}int main(){ int ret = check_sys(); if (ret == 1) { ..原创 2021-02-25 21:10:16 · 169 阅读 · 0 评论 -
7.程序的编译
…原创 2021-02-25 21:10:57 · 155 阅读 · 0 评论 -
6.文件的操作
FILE指针C语言,每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及 文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是有系统声明的,取名FILE. 例如,VS2008编译环境提供的stdio.h 头文件中有以下的文件类型申明:struct _iobuf{ char*_ptr; int _cnt; char *_base; int _flag; int _file; i.原创 2021-02-25 21:09:42 · 470 阅读 · 0 评论 -
5.结构体、联合体(内存对齐)和位段精讲
结构体结构体的声明格式结构体的自引用结构体大小计算先搞清楚内存对齐是个啥内存对齐的主要作用现在来具体看一下对齐的规则数据成员各自对齐结构(或联合)本身也要进行对齐小试牛刀提升掌握结构体大小计算联合体和位段联合体联合类型的类型声明联合变量的定义联合大小的计算位段先搞清楚...原创 2021-01-23 16:32:54 · 454 阅读 · 0 评论 -
4.动态内存管理
动态内存管理必要性我们先看一下程序栈空间申请的数组的空间有什么特点?编译期间1就已经确定并分配了所要开辟的内存大小不需要程序员手动的去管理和维护连续的空间(比如数组)正是需要在程序运行期间,动态的开辟调整和维护管理内存空间的需求才导致动态内存管理的必要性,动态申请的空间是在堆空间上的2动态内存管理的相关函数mallocfreecallocreallocmallocRequired Header:<stdlib.h> and <malloc.h>函.原创 2021-01-16 18:05:36 · 435 阅读 · 0 评论 -
3.字符串相关函数
strlenstrcpystrcatstrcmpstrncpystrncatstrncmpstrstrstrtokstrerrorsize_t strlen(const char *str)#include<string.h>·字符串已经’\0’作为结束标志,strlen函数返回的是在字符串中’\0’前面出现的字符个数(不包含’\0’)。·参数指向的字符串必须要以’\0’结束。·注意函数的返回值为size_t,是无符号的(易错)·strlen函数的模拟实.原创 2021-01-16 14:45:49 · 162 阅读 · 0 评论 -
2.指针
关于指针是个什么,大家可以参考C初级专栏5.指针与指针变量博文一数组指针 一维数组传参 二维数组传参二指针数组三函数指针和回调函数 函数指针 回调函数四函数指针数组五常见面试题数组指针指向数组的指针,指针变量存放的是数组的地址1#include <stdio.h>int main() { int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int(*ptr_int)[10] = &arr; .原创 2021-01-15 14:44:15 · 185 阅读 · 0 评论 -
1.浮点数存储与内存中整数的存在形式
浮点数的存储整数在内存中的存储浮点数的存储IEEE 754规定:对于32位的浮点数,最高的1位是符号位s ,接着的8位是指数E ,剩下的23位为有效数字M。对于64位的浮点数,最高的1位是符号位S ,接着的11位是指数E ,剩下的52位为有效数字M。可以通过IEEE-754例题进行巩固知识S符号标志位,E阶码,M是尾数浮点数的真值 = (-1)^s × 1.M × 2^e整数在内存中的存储整数在内存中计算都是以补码的形式进行的关于原码、反码、补码变换的知识:原码除符号位其它位.原创 2021-01-15 16:37:11 · 230 阅读 · 2 评论