C 笔记
记录学习C语言的一些窍门和作品
Technical^Blog
低调
展开
-
C++之顺序表:为啥你写的代码有脏数据?
1.如果对于一个顺序表在初始化的时候不给他赋值初始化,他将会变得一发不可收拾.jpg现在声明一个线性表(顺序表),并且初始化其长度,但并未赋初值,会有什么后果呢?#include<stdio.h>#define MaxSize 10typedef struct { int data[MaxSize]; int length;//表长}SqList;void InitList(SqList& L) { /* //赋初值,可省略,但会产生"脏数据" for(int i原创 2021-09-04 14:00:24 · 560 阅读 · 0 评论 -
C++中“&”数据类型的使用技巧实例
1.不使用&,调用函数后不改变数据的初始结果#include <stdio.h>void test(int x) { x = 1024; printf("test函数内部x = %d\n",x);}int main() { int x = 1; printf("调用test前x = %d\n", x); test(x); printf("调用test后x = %d\n", x);}2.使用&,将函数内的结果带回主函数,并输出#include <原创 2021-09-04 13:29:41 · 449 阅读 · 0 评论 -
从C语言到C++语言
1.C语言与C++的关系C语言:众所周知,C语言是结构化和模块化的语言,是面向过程的。当程序的规模较小时,C语言运用起来得心应手。但是当问题比较复杂、程序的规模比较大的时候,C语言就会展现出它的局限性。C++:正是因为有大规模的程序需要去处理,C++就应运而生了。C++是由C发展而来的,与C语言兼容。C++既可用于面向过程的结构化程序设计,也可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。总结:1.C语言面向过程,C++既可以面向过程也可以面向对象。2.C++是在C的基础上发展而来原创 2021-07-12 14:23:47 · 209 阅读 · 2 评论 -
C语言文件操作详解
一.文件头文件:stdio.h文件是一种结构:FILE文件的指针:FILE *fp; //定义文件指针内部指针:抽象的指针 标记文件内部的位置情况。文件结束的标志:EOF(一)库函数:打开文件:FILE *fopen(char *filename, char * mode);打开一个文件,返回这个文件的指针。 文件名(路径)filenamemode模式r 只读 只能读取文件的数据 ,不能写文件 w 只写 直接清空文件内容 重新写.原创 2021-07-06 22:52:08 · 70 阅读 · 0 评论 -
C语言基本类型使用范围
编程规范:使用基本变量时要严格遵守范围,避免溢出(内存泄漏)。原创 2021-04-29 17:07:26 · 96 阅读 · 0 评论 -
C语言中const与#define比较
为什么官方推荐使用const声明常量呢?—————————————————————————————————————————————————————答:const关键字声明常数,可以用相对较少的代码量,节约运行时间;而用#define时,调试过程中只会出现数字而不会出现变量名,用const代替#define可以避免调试过程中造成不必要的疑惑。...原创 2021-04-29 15:26:39 · 88 阅读 · 0 评论 -
vs一闪而过永久解决方案
项目->属性->配置属性->链接器->系统->子系统->控制台 增加“/SUBSYSTEM:CONSOLE”链接选项就可以了。原创 2021-04-15 20:56:34 · 200 阅读 · 1 评论 -
C语言回文字符串判断(采用Stack)
本实例采用栈来实现,注意:栈是一种后进先出设计原则; 栈顶指针必须初始化;#include<stdio.h>#include<stdlib.h>#include<string.h>int main() { char a[101], s[101]; int i, len, mid, next, top; printf("Input strings:\n"); gets_s(a);//读取一行字符串 len = (int)strlen(a); mi原创 2021-04-12 22:54:16 · 278 阅读 · 0 评论 -
C语言实现单链表增删改查实例
单链表的增删改查实例注意:使用链表的插入与删除时要严格注意所插入或者删除元素在本链表中的边界问题, 同时也要注意链表的判空问题, 注意链表指针最后一定要指向NULL#include<iostream>#include<stdlib.h>using namespace std;typedef struct Node { //结构体定义结点 int data; Node *next;}*LinkedList;//结构体指针LinkedListvoid In.原创 2021-04-08 22:05:54 · 451 阅读 · 3 评论 -
C语言实现单链表的头插法与尾插法
一.头插法//头插法建立单链表LinkList List_HeadInsert(LinkList &L) { LNode*s; int x; L = (LinkList)malloc(sizeof(LNode)); scanf("%d", &x); while (x != -9999) { s = (LNode*)malloc(sizeof(LNode));//创建新节点 s->data = x; s->next = L->next; L-原创 2021-04-07 13:56:17 · 507 阅读 · 0 评论 -
C语言实现单链表的插入
1.带头结点按位插入(指定结点后插)//带头结点按位序插入bool ListInsert(LinkList &L, int i, int e) { if (i < 1) return false; LNode *p;//指针p指向扫描到的结点 int j = 0;//当前p指向的第几个结点 p = L;//L指向头结点,头结点是第0个结点(不存数据) while (p != NULL && j < i - 1) {//循环找到第i-1个结点 p原创 2021-04-06 23:14:14 · 4104 阅读 · 0 评论 -
C语言实现单链表
1.不带头结点单链表typedef struct LNode { int data; int *next;}*LinkList;//初始化一个空的单链表(不带头结点)bool InitList(LinkList &L) { L = NULL; return true;}//判断单链表是否为空(没有头结点)bool Empty(LinkList L) { return (L == NULL);}2.带头结点单链表bool InitHeadList(Lin原创 2021-04-06 21:55:19 · 81 阅读 · 0 评论 -
C语言顺序表(动态分配)查找
顺序表的按位查找与按值查找关键代码://按位查找int GetElem(SeqList L, int i) { if (i<1 || i>L.length) return 0; return L.data[i - 1];}//按值查找int LocateElem(SeqList L, int e){ for (int i = 0; i < L.length; i++) { if (L.data[i] == e) { return i + 1;原创 2021-04-06 20:43:18 · 498 阅读 · 0 评论 -
C语言实现顺序表的插入与删除
顺序表的插入与删除#include<stdio.h>#include<stdlib.h>#define InitSize 10typedef struct { int *data; int MaxSize; int length;}SeqList;void InitList(SeqList &L) { L.data = (int *)malloc(sizeof(int)*InitSize); L.length = 0;//初始化长度(空表) L.原创 2021-04-06 19:57:45 · 1301 阅读 · 1 评论 -
C语言顺序表实现
一.顺序表实现(静态分配)#include<stdio.h>#include<stdlib.h>#define MAXSIZE10 10typedef struct{ int data[MAXSIZE10]; int length;}SqList;//初始化一个顺序表void InitList(SqList &L){ L.length = 0;}int main(){ //声明一个列表L SqList L; //调用InitList函原创 2021-04-06 17:41:24 · 246 阅读 · 1 评论