
C语言
文章平均质量分 53
cxpxatu521
混口饭吃够不够?
展开
-
位段
位段1.位段的定义1.位段的定义原创 2021-09-15 17:40:46 · 116 阅读 · 0 评论 -
结构体内存对齐
结构体内存对齐1.结构体为什么需要内存对齐?2.内存对齐的原则3.内存对齐的限制方式4.内存对齐经典实例分析1.结构体为什么需要内存对齐?不同的平台对于内存的读取规则不同,有些平台规定结构体必须对齐;内存对齐可以减少内存的访问周期,提高性能;2.内存对齐的原则1)基本数据类型有自身的对齐值,也就是自身类型所占字节数;如int为4个字节,long为4个字节,char为1个字节,double 为8个字节;2)自定义类型有自身的对齐值,也就是所有基本数据类型中自身对齐值最大的一个;如下所示://t原创 2021-09-15 16:21:39 · 168 阅读 · 0 评论 -
一个巧妙的C语言函数
题目要求:实现一个函数,保留一个实型数的两位小数,第三位小数四舍五入(规定实型数是正数)代码:#include <stdio.h>//保留一个实型数的两位小数,第三位小数四舍五入(规定实型数是正数)float fun ( float h ){ //eg 1: //1234.567777890 //*1000:1234567.777890 //+5:1234572.777890 // /10:123457.2777890 t:123457 // /100:1234.5原创 2021-03-22 17:10:25 · 195 阅读 · 0 评论 -
C语言动态开辟内存,纯干货!!!
动态申请空间malloc,realloc,calloc之间的区别原创 2021-03-07 23:23:25 · 662 阅读 · 0 评论 -
C语言期末课设----大学生成绩管理系统
大学生成绩管理系统1.程序的功能录入学生成绩,插入学生成绩,修改学生成绩,删除学生成绩,查找学生信息,显示学生信息,对学生成绩按总分由高到低进行排序,统计学生人数;2.预备知识排序算法结构体switch—case分支语句按格式输出磁盘文件的基本操作malloc申请内存空间system函数strcpy函数3.程序主要函数void in(); //录入学生成绩信息void show(); //显示学生成绩信息void order(); //按总分排序void原创 2021-03-06 16:41:29 · 1306 阅读 · 0 评论 -
预防头文件重复引入:#ifndef
一.不加#ifndef,重复引入头文件报错1.错误代码head.h://找出两个数中的较大值int MaxValue(int a, int b){ return a > b ? a : b;}test.h:#include"head.h"//找出三个数中的最大值int fun(int a, int b,int c){ int tmp = MaxValue(a, b); return tmp > c ? tmp : c;}test.c:#include<原创 2021-02-26 21:22:48 · 410 阅读 · 0 评论 -
C语言static关键字怎么用
static关键字可以修饰:1. 修饰局部变量-静态局部变量2. 修饰全局变量-静态全局变量3. 修饰函数-静态函数1.修饰局部变量:static修饰局部变量改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。2.修饰全局变量:一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。举例:test1.cint sum = 122;test2.c#include<stdio.h>extern i原创 2021-01-16 15:52:06 · 182 阅读 · 0 评论 -
程序编译过程都经历了什么?
源文件要变成可执行文件才能运行,这个过程由编译器完成。编译器需要完成的工作有四部分:预处理,汇编,编译,链接。这四步依次进行,缺一不可。我们常用的开发环境如visual studio,将编译器完成的四个步骤不进行显示,点击调试就直接可以运行,而visual C++ 可以分别 编译,链接,运行;在linux下执行一段C代码,可以将这四个步骤依次进行,具体过程如下图所示:...原创 2021-01-09 10:26:47 · 378 阅读 · 0 评论 -
sizeof运算符和strlen的区别
sizeof运算符返回一个对象或者类型所占的内存字节数,strlen 返回的是字符串或字符数组有效元素的个数;但计算字串时,sizeof运算符会将字符串结束标志计算在内,而strlen 只是返回有效元素的个数,即’\0’前字符的个数。例子如下:#include<stdio.h>#include<string.h>int main(){ char b[] = { 'a', 'b', 'c', 'd' }; printf("sizeof(b)=%d\n", sizeo原创 2021-01-08 14:48:35 · 179 阅读 · 1 评论 -
链表C语言实现
主函数内#include<stdio.h>#include"list.h"#include<malloc.h>//双向带头循环链表void test(){ List lst; ListInit(&lst); printf("尾插:\n"); ListPushBack(&lst, 1); Print(&lst); ListPushBack(&lst, 2); Print(&lst); ListPushBack(&a原创 2020-12-20 09:33:07 · 229 阅读 · 1 评论