C
「已注销」
不忘初心
展开
-
结构体内存对齐
结构体大小 >=结构体成员大小之和内存对齐 优点: 数据操作更快(处理数据) 缺点: 不仅慢 , 而且浪费一部分内存 结构体是怎么分配内存的? 如何计算结构体分配的内存大小呢? (以下涉及到的数字单位都为字节)举个例子, 先定义一个结构体struct stu{ char a[5]; int b; float c; double d; char...原创 2018-08-14 22:10:03 · 137 阅读 · 0 评论 -
指针常量 常量指针
const int b=10; 和int const b=10 是一样的1. const放在 *前面 常量指针 int const *p; const int *p;不能通过p修改变量的值const 修饰的是*p 表明 *p(值)不能修改 2. const放在 *后面 指针常量 int * const p; 一开始要赋值,...原创 2018-08-14 23:00:41 · 165 阅读 · 0 评论 -
C语言文件写入与读取
写入函数fprintf 将变量的值写入文件fprintf(文件指针,格式占位符,变量) FILE *fp; int a=2; fprintf(fp, "%d", a); 读取函数fscanf() 将文件的值赋值到变量中fscanf(文件指针,格式占位符,变量) FILE *fp; int a; fscanf(fp, "%d"...原创 2018-08-18 18:33:51 · 1450 阅读 · 0 评论 -
C语言提升篇---函数指针的应用 实现排序
二话不说,贴上代码/* 函数指针的应用 实现排序(从小到大和从大到小) by_Murphy 2018/8/21*/#include<stdio.h>int is_max(int x, int y){ return x > y; }int is_min(int x, int y){ return x < y; }void buSo...原创 2018-08-21 19:33:06 · 1155 阅读 · 0 评论 -
创建一个链表
不知道为什么总是忘了对链表的操作, 主要就是平时用的少, 希望自己通过写这编文章能加深对链表操作的印象目录1.首先得要有两个基本的头文件2.再然后得要有个结构体3. 这部分是函数前置声明4.链表初始化5.插入节点6.打印整个链表7. 释放整个链表的内存8.整个程序示例9.打印结果1.首先得要有两个基本的头文件#include&l...原创 2018-08-24 23:33:46 · 48103 阅读 · 10 评论 -
排序
目录冒泡排序选择排序插入排序快速排序冒泡排序(时间复杂度, 空间复杂度,稳定)#include<stdio.h>void bubbleSort(int a[], int n){ for (int i = 0; i < n - 1;i++) //n-1轮 for (int j = 0; j < n - 1 - i; j++) i...原创 2018-08-21 23:57:51 · 193 阅读 · 0 评论 -
循环双链表的创建
链表有两种: 一种是头指针式链表; 还有一种是头节点式链表; 第一种顾名思义就是head只是个结构体指针; 不需要malloc给其分配内存;而第二种head是一个节点, 需要malloc给其分配内存;以下我个人写的头节点式指针的循环双链表, 但头节点head不存数据(存数据的还没试过)#include<stdio.h>#include<stdli...原创 2018-08-29 23:14:13 · 1097 阅读 · 0 评论 -
p!= NULL 还是 P->next!=NULL
在学习C语言指针的时候, 我常常会因为 "到底什么情况用p!=NULL, 什么情况用p->next!=NULL" 而头痛我举个栗子 PNODE deleteNode(PNODE head, int data){ PNODE p = head, temp; if (head == NULL) { printf("链表为空!\n"); return head; }...原创 2018-08-25 23:14:06 · 7896 阅读 · 4 评论