![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
文章平均质量分 77
饮一盏岁月留香丶
这个作者很懒,什么都没留下…
展开
-
C语言文件的一些操作
这一段代码,展示的是写一个指令,可以拷贝一个文件中的内容到另一个文件中。 FILE* fpIn = fopen("argv[1]", "r"); assert(fpIn != NULL); FILE* fpOut = fopen("argv[2]", "w"); assert(fpOut != NULL); char buffer[256] = { 0 }; char* res = fgets(buffer, 256, fpIn); while (res != NULL) { fputs(原创 2021-08-01 23:40:08 · 111 阅读 · 0 评论 -
C语言动态内存管理
C语言中的内存分配在写c的代码中,定义不同类型的变量,定义一个变量就在内存上开辟了响应的空间。有个比较基础的概念,内存中有栈区,堆区,静态常量区。常用的一些内容,比如函数调用参数,临时变量都是在栈区开辟空间。全局变量,静态修饰的变量,字符串常量一些都是开辟在静态常量区上的。有时候需要多么大的空间在程序运行中才能计算,就需要动态开辟空间的方法。动态开辟的空间是在堆区进行的。C中提供了动态内存开辟的函数。malloc函数void* malloc(size_t size)这个函数的作用是向内存申请一块连续原创 2021-08-01 01:40:09 · 88 阅读 · 0 评论 -
C语言结构体内存对齐
关于结构体的几个易错问题结构体主要掌握它的声明,结构体变量的定义和初始化,结构体传参等方法。其中有几个问题需要特别注意。一是结构体的自引用,不能再内部定义自己类型的变量,因为这个结构体还没有声明完成,它没有大小,在内部直接定义自己类型的变量编译器不知道要开辟多大的空间,这是不合法的。但是定义自己类型的指针是可以的,指针变量的大小是固定的。二是C语言中,结构体不允许是空结构体,至少要有一个成员,但是C++种支持空结构体.三是结构体类型不占空间,虽然它有大小,只有实例化后才会开辟相应的空间。四是结构体原创 2021-07-31 12:26:15 · 89 阅读 · 0 评论 -
C语言字符串函数
C语言中定义字符串的一个问题C语言中一般定义字符串有两种形式,一种是char str[]这种方式只开辟了一个数组空间。另一种char *str这种方式开辟了两个空间,一个指针空间和一个常量区的空间,所以这种方式定义的字符串是一个常量,多在不对其做修改的情况下使用。用相同常量初始化不同数组时会开辟不用空间。例如str1[]={"HELLO"}; str2[]={"HELLO"}; str1 != str2.strlen函数size_t strlen(const char *str);strlen函数原创 2021-07-30 23:49:18 · 543 阅读 · 0 评论 -
C语言数据类型及在内存中的存储
C语言中的数据类型我们知道C语言中有char,short,int,double等一些内置类型,以及struct,enum,union这样的自定义类型。根据使用情况可以分为,整形,浮点类型,构造类型,指针类型,空类型几类。这是C中最基本的知识。大小端的概念首先在计算机系统中,CPU的编址,寻址和访问内存都是以字节为单位的。以一个十六进制数0x12345678为例,它的12是高权值位,78是低权值位。一个四个字节的连续空间,假设编址为0xF1,到0先F4,如果12,存储在0xF1处,78存储在0xF4原创 2021-07-27 22:36:08 · 375 阅读 · 0 评论