C
记录c语言学习的一些过程(一部分知识出自郝斌老师)
小飞编程之旅
小白一枚,写博客只是记录一些自己学习的过程,如有错误侵权等请指正。
展开
-
C | 位运算符
一、&&——按位与(二进制之间);&& 逻辑与(也叫并且);与按位与(&)完全不同;一般用于信息采集;例如:#include<stdio.h>#include<stdlib.h>int main(void){ int a = 5; //二进制为——0101 int b = 7; //二进制为——0111 /* 0 1 0 1 0 1 1 1 —————原创 2020-10-05 22:41:05 · 538 阅读 · 0 评论 -
C | 链表
首先让我们来了解几个专业名词头结点:头结点的数据类型和首节点的类型是一模一样的;1、头结点是首节点前面的那个点;2、头结点并不存放有效数据;3、设置头结点是为了方便链表的操作;头指针:1、存放头结点地址的指针变量;一、链表和数组的比较对数组和链表,相信大家应该都不陌生,下面我就简单说一下他们的不同吧!链表优点:插入删除元素效率高; 不需要一个很大的连续的内存缺点:查找某个位置元素效率很低—————————————————————————原创 2020-10-05 11:40:37 · 102 阅读 · 0 评论 -
C | 原码 反码 补码 移码
PS:精华全部在开头部分,下面为细节部分计算机中一个字节用8个二进制位表示(也就是8个0或8个1组合在一起)4个二进制数表示一个10进制//以 -5 举例原码 : 1 000 0101 二进制(开头第一个表示符号0正1负)反码:1 111 1010(除符号位以外,各位取反)补码:1 111 1011(除符号位以外,各位取反,末位加一)移码:0 111 1011(对补码符号位取反)运算过程:原码->反码->补码->移码反码 :在原码的基础上,符号位不动,其原创 2020-09-29 20:56:25 · 826 阅读 · 0 评论 -
C | 枚举的应用
一、什么是枚举在一个类里定义几个静态变量,每个变量都是这个类的实例。简单来说:就是把一个事物所有可能的取值一 一列举出来。二、枚举的应用枚举和结构体很类似,只不过每个枚举常量后用逗号(,)隔开结构体用分号(;)。#include <conio.h>#include <stdio.h>#include <stdlib.h>enum WeekDay{ Monday, Tuesday, Wednesday, Thursday原创 2020-09-26 21:37:30 · 109 阅读 · 0 评论 -
C | 冒泡排序(升序和降序)
#include<stdio.h>#include<stdlib.h>//升序void sort(int *pArr,int len){ int i, j, k; for(i=0; i<len-1; i++) { for(j=0; j<len-i-1;j++) { if(pArr[j] > pArr[j+1]) //升序 //pArr[j] < p原创 2020-09-24 16:51:50 · 2770 阅读 · 0 评论 -
C | 函数完成对结构体的输出
//通过函数完成对结构体的输出 #include<stdio.h>#include<stdlib.h>#include<string.h>void InputStudent(struct Student *);void OutputStudent(struct Student *ls);struct Student{ int age; char name[20]; char sex[10]; int height;}原创 2020-09-24 15:45:51 · 608 阅读 · 0 评论 -
C | 结构体的定义取用
一、什么是结构体把一些基本数据组合在一起形成的一个新的复合数据类型(类似类)其定义形式为:struct name{type1 var1;type2 var2;…typen varn;};二、结构体的三种定义方式 - 第一种定义了一个新的数据类型,并没有定义变量(推荐使用第一种)struct Student { int age; char name; float height; char sex; }; -原创 2020-09-23 22:10:54 · 90 阅读 · 0 评论 -
C | 指针篇之(内存跨函数使用问题)
1、静态变量不能跨函数使用静态变量系统是固定分配内存的属于静态内存,一旦该函数使用结束所有静态变量内存空间都会重置释放,相当于清零例如下面这段代码:语法上并没有报错,编译器也能运行出来,但是逻辑上是不对的当fun()函数使用结束后,其函数内部由系统自动分配的静态变量p和i内存空间会释放,所以q只能保存i的地址不能返回i的空间。#include<stdio.h>#include<stdlib.h>void fun(int **p){ int i =6;原创 2020-09-22 22:24:28 · 283 阅读 · 0 评论 -
C | 内存分配(动态内存和静态内存)
一、动态内存在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。简单来说:动态内存是由程序员手动分配,手动释放用时分配,不用释放!//创建一个动态一维数组(自动分配内存)malloc()函数分配;free()函数释放//构造动态数组 2020/9/21 22:09#include <malloc.h>#include <stdio.h>#include <stdlib.h>//malloc=memory(内存) allocate(原创 2020-09-22 20:08:54 · 375 阅读 · 1 评论 -
C | 指针篇之(指针和数组)
最近学到c语言指针篇发现了几个常见错误下面是我自己的一些理解(叙述不到位请谅解)1、未对指针变量进行指向这个错误是比较隐晦的*p是以p的值为地址的一个单元,而p是未经过初始化的一个未知变量 int * p; int m =3; *p = m;正确写法应该先对其取地址 int * p; int m =3; p = &m; *p = m;...原创 2020-09-21 20:10:34 · 55 阅读 · 0 评论 -
C | 指针篇之(指针的重要性及分类)
指针的重要性:表示一些复杂的数据结构;快速的传递数据;使函数返回一个以上的值;能够直接访问硬件;能够方便的处理字符串;是理解面向对象语言的引用基础总之指针是C语言的灵魂指针的分类:基本类型指针指针和数组指针和函数指针和结构体多级指针...原创 2020-09-15 20:40:39 · 264 阅读 · 0 评论 -
C | 指针篇之(普通变量和指针变量)
1. 什么是指针?指针就是地址,地址就是指针(&取地址符);地址就是内存单元的编号;2. 指针和指针变量的关系?指针变量是存放地址的变量;指针和指针变量是两个不同的概念,但是要注意,我们在叙述时会把指针变量简称为指针;# include<stdio.h>int main(void){ int * p; //p是变量名字,*表示存储的是int类型变量的地址 int i = 3; p = &i;//ok /* p保存了i的地址,因此p指向i; p不是i,原创 2020-09-12 23:41:12 · 796 阅读 · 1 评论