![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言学习笔记
Ja_King_ZH
这个作者很懒,什么都没留下…
展开
-
图的基本算法
图的基本算法bellman-ford算法dijkstra算法Floyd算法spfa算法prim算法(最小生成树)拓扑排序图的dfs和bfsbellman-ford算法#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int N=510,M=10010;int dist[N],backup[N];int n,m,k;struct edge{原创 2021-11-20 20:06:45 · 920 阅读 · 11 评论 -
C语言文件操作
1.文件的打开和关闭1.1 文件的打开#include <malloc.h>#include <stdio.h>// 主函数int main() { FILE *fp; // 文件指针 fp = fopen("input.txt","r"); // 打开文件 read/write fucntions // 读或者写函数 fclose(fp); // 关闭文件指针 return 0;}(1)用“r”方式打开的文件只能用于向计算机输入而不能用作原创 2021-10-08 22:01:21 · 525 阅读 · 13 评论 -
C语言动态内存开辟
1.malloc、free1.1 malloc的原型为:void *malloc( size_t size );1.2 malloc的用法:看下面代码:int* p=(int*)malloc(10*sizeof(int));上面代码意思是开辟10个int类型大小的空间,将其强制转换为int型,并用int类型指针接收。1.若开辟成功,则返回开辟空间的头指针。2.若开辟失败,则返回空指针。所以,用了malloc后一定要判断!如下面代码:#include<stdio.h>#原创 2021-10-01 10:00:06 · 2312 阅读 · 6 评论 -
详解C语言结构体、枚举、联合体
结构体、枚举、联合体1.什么是结构体、枚举、联合体2.定义结构体2.1 包含结构体成员变量、variable2.2 tag、结构体成员变量2.3 用结构体声名变量2.4 用typedef 创建新类型2.5 两个结构体相互包含2.6 结构体变量初始化2.7 结构体指针3.枚举3.1 定义方式3.2 为什么用枚举3.3 枚举变量的定义3.4 实例3.5 枚举实际用途4.联合体4.1 与结构体区别4.2 定义1.什么是结构体、枚举、联合体结构体(struct)是由一系列具有相同类型或不同类型的数据项构成的原创 2021-09-27 16:58:47 · 2437 阅读 · 11 评论 -
C语言常见的字符函数和字符串函数---重要!!!
1原创 2021-09-20 13:35:10 · 516 阅读 · 21 评论 -
数据在内存中的存储总结
数据在内存中的存储总结一.数据类型介绍二.类型的意义三.类型归类3.1.整型家族:3.2.浮点数家族:3.3.构造类型:四.整形在内存中的存储:4.1.原码、反码、补码4.2.先来看看整形在内存中存储的例子:4.3.这里就要引入小端存储和大端存储。4.3.1.小端存储模式:4.3.2.大端存储模式:五.浮点数在内存中的存储:5.1.E的两种特殊取值:5.1.1. E全为0:5.1.2. E全为1:一.数据类型介绍基本内置类型分别为:char //字符数据类型short原创 2021-08-23 17:17:56 · 550 阅读 · 4 评论 -
C语言-9(三子棋)
1.创建源文件test.c放入以下代码#include<stdio.h>#include"game.h"void menu(){ printf("*******************************\n"); printf("*** 1 . play 0 . exit ***\n"); printf("*******************************\n");}void game(){ char ret; char board[RO原创 2021-04-18 17:20:42 · 1239 阅读 · 8 评论 -
C语言-10(学习C语言的第十天)
0为假,所以不循环原创 2021-04-19 22:22:35 · 2062 阅读 · 9 评论 -
C语言之时间复杂度&空间复杂度
时间复杂度1.算法的时间复杂度记忆方法:常对幂指阶2.一个循环结构:T(n)=O(n)循环结构中嵌套循环结构时:T(n)=O(n*n)3.顺序执行的代码只会影响常数项,可以忽略4.只需挑循环结构中某一条语句进行分析5.void loveYou(int n){ int i = 1; while (i <= n) { i *= 2; printf("love you!!"); } printf("fight!!!"); }假设循环x次分析循环可知i=2的x次方所原创 2021-06-24 13:51:48 · 2883 阅读 · 4 评论 -
C语言之顺序表&单链表
一、顺序表的创建、删除和插入#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>struct sqlist { int date[10]; int length;};void InitList(sqlist& L) { for (int i = 0;i < 10;i++) { L.date[i] = 0; } L.length = 0;}void charu(sqlist& L) { for (i原创 2021-06-26 16:35:21 · 850 阅读 · 5 评论 -
C语言-12(初识结构体)
初识结构体1.struct-结构体关键字 stu- 结构体标签,struct stu - 结构体类型struct stu内部相当于定义一个结构体类型。而struct stu s-创建结构体变量。#include<stdio.h>struct S{ int a; char c; char arr[20]; double d;};struct T{ char ch[10]; struct S s; char *pc;};int main(){ cha原创 2021-04-22 20:21:55 · 681 阅读 · 5 评论 -
类和对象(C语言-15)
类和对象万事万物皆可以作为对象,对象上有其属性和行为。例如:人可以作为对象,属性有身高,体重,年龄…,行为有跑步,唱歌…具有相同性质的对象,可以抽象为类1.封装1)设计一个圆类,求圆的周长class代表你要设计一个类了类后面紧跟类的名称#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>const double PI = 3.14;class circle {public: int r; double zc(){原创 2021-05-16 09:58:49 · 1918 阅读 · 4 评论 -
C语言-11(初识指针)
初识指针1.指针类型决定了指针进行解引用操作符的时候,能够访问空间大小。int*p p能够访问4个字节大小charp p能够访问1个字节大小doublep *p能够访问8个字节大小2.指针 +/- 数字3.野指针(指针指向的位置是不可知的)1)局部变量指针未初始化,默认为随机值。2)3)指针指向的空间被释放4.指针需要先初始化(避免野指针)int* p=&aint* p=NULL(空指针)5.指针与数组1)数组名是首元素的地址2)而&数组名表示整原创 2021-04-20 20:56:39 · 833 阅读 · 4 评论 -
C语言-14(指针)
p=NULL,*p不能指向NULL4. 若有语句:int a=4,*p=&a;下面均代表地址的一组选项是: 1) a,p,&*a 2) *&a,&a,*p 3) &a,p,&*p 4) *&p,*p,&a选C,p是a的地址,不是*p,attention,别搞错了!!!...原创 2021-05-09 14:31:40 · 847 阅读 · 4 评论 -
C语言-7(学习C语言的第七天)
数组1.一维数组#include<stdio.h>int main(){ int arr[10]; return 0;}创建一个数组,存放整型10个。[const_n]中的const_n应该是一个常量表达式。int n=5;char ch[n];这样的代码是错误的,因为n不是常量。int main(){ int arr[10]={1,2,3};//不完全初始化 return 0;}这叫不完全初始化,剩下元素默认初始化为0.#include<st原创 2021-04-16 12:27:54 · 2161 阅读 · 11 评论 -
C语言-8-编写第一个游戏(猜数游戏)
void menu(){ printf("****************************\n"); printf("*** 1 . play 0 . exit ***\n"); printf("****************************\n");}void game(){ printf("猜数字\n");}int main(){ int input = 0; do { menu(); printf("请选择>:"); scanf("原创 2021-04-17 22:09:32 · 1579 阅读 · 5 评论 -
C语言-13(初识链表)
链表1.链表的定义:链表:由若干个结点组成,每个结点至少含有两个域;1)数据域:存放数据信息;2)指针域:存放下一个结点的地址;由这样的多个结点连接形成顺序存储结构。2.链表由结构体来定义链表中的节点3.链表的基本操作(1)链表创建(2)链表查找(3)链表插入(4)链表删除(5)链表输出4.单向链表结构1)链表的一个元素称为一个“结点”;2)结点中包含两部分内容,第一部分是数据内容,第二部分是指向下一个结点的指针;3)链表有一个“头指针”head,它指向链表的第一个元素;原创 2021-04-25 10:54:06 · 1556 阅读 · 5 评论 -
C语言中break和continue区别
1.当它们用在循环语句的循环体时,break用于退出本层循环,而continue为结束本次循环(本次循环体内不执行continue语句后的其它语句,但下一次循环还会继续执行。)不管是 for 循环,还是 while 循环,或者是 do…while 循环,都可以用 break 跳出来,但是 break 只能跳出一层循环。当有多层循环嵌套的时候,break只能跳出“包裹”它的最里面的那一层循环,无法一次跳出所有循环。break可用于switch语句,表示跳出整个switch语句块,而continu原创 2021-05-09 14:27:46 · 2468 阅读 · 4 评论 -
C语言-2(学习C语言的第二天)
bit—比特位byte—字节—等于8个bit原创 2021-04-11 11:52:38 · 1966 阅读 · 10 评论 -
C语言-5(学习C语言的第五天)
后置:a=11,b=10前置:a=11,b=11最高位表示符号,1为负数,0为正数原创 2021-04-14 22:11:10 · 1002 阅读 · 5 评论 -
C语言-4(学习C语言的第四天)
ctrl+k+c注释 Ctrl+k+u取消注释下标排序从0开始,【4】表示第五个数原创 2021-04-13 16:43:20 · 1484 阅读 · 4 评论 -
C语言-1(第一天学C语言)
第一天学c语言## c语言-1#include<stdio.h>int main(){ printf("shabi\n"); return 0;}main有且仅有一个#include<stdio.h>int main(){ int age = 20; printf("%d\n", age);//%d---打印整型十进制数据 return 0;}...原创 2021-04-10 19:33:27 · 2920 阅读 · 5 评论 -
C语言-3(学习C语言的第三天)
字符串&&转义字符字符串由双引号引起来的字符称为字符串,如"happy"。字符串的结束标志是\0。让我们来看看以下代码#include<stdio.h>int main(){ char arr1[]="abc"; char arr2[]={'a','b','c'}; printf("%s\n",arr1); printf("%s\n",arr2); return 0;}按照常理来说,arr1和arr2的结果应该相同。但输出的结果却不同,第二组后原创 2021-04-12 14:12:13 · 2995 阅读 · 9 评论 -
C语言-6(学习C语言的第6天)
;不可省略原创 2021-04-15 21:51:13 · 783 阅读 · 5 评论 -
函数栈帧的创建与销毁,带你了解代码底层原理
在学习C语言时,我们难免有许多疑问例如:(1)局部变量是怎么创建的?(2)为什么局部变量的值是随机的?(3)函数是怎么传参的?传参的顺序如何?(4)形参和实参是什么关系?(5)函数调用是怎么做的?(6)函数调用结束后是怎么返回的?这些疑问其实都和函数栈帧的创建与销毁有关寄存器eax,ebx,ecx,edx,ebp,esp等都属于寄存器ebp与esp 这两个寄存器放的是地址,这两个地址用来维护函数栈帧的,每一次函数调用都要在栈区上开辟一块空间在VS2013中main函数被_.原创 2021-08-12 13:44:06 · 745 阅读 · 5 评论