
C/C++
主要为c/c++方面的知识
如果大雪封门
地质大学搞计算机
展开
-
两种常见的选择排序
一.简单选择排序/*简单选择排序空间复杂度:O(1)时间复杂度:O(n^2)稳定性:不稳定*/void SelectSort(int a[],int n){ int i,j; for(i=0;i<n;i++){ for(j=i+1;j<n;j++){ if(a[j]<a[i]){ int temp = a[j]; a[j] = a[i];原创 2021-09-29 15:54:40 · 182 阅读 · 0 评论 -
常见的两种交换排序
一.冒泡排序/*冒泡排序 --- 正向冒泡(大的值向后冒泡)空间复杂度:O(1)时间复杂度:最优时间复杂度O(n),最坏时间复杂度O(n^2)稳定性:稳定*/void BubbleSort(int a[],int n){ int i,j; for(i=1;i<n;i++){ int flag = 0; for(j=1;j<n-i+1;j++){ //关于j的条件可以优化 if(a[j]<a[j-1]){原创 2021-09-28 19:26:47 · 195 阅读 · 0 评论 -
c语言动态分配内存与指向它的指针变量
一.动态分配内存的四个函数1.malloc函数,原型是void * malloc(unsigned int size);其作用是在内存的动态存储区中分配一个人长度为size的连续存储空间。2.calloc函数,原型是void * calloc(unsigned int size);其作用是在内存的动态存储区中分配n个长度为size的连续空间。3.free函数,其原型是void free(void *p); 其作用是释放p所指向的空间,使这部分空间能重新被其它变量使用。4.realloc函数,其原型是原创 2021-09-26 16:53:23 · 334 阅读 · 0 评论 -
c语言指针的深入浅出---part2
一.指向函数的指针1.概念:如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址(又称入口地址)称为这个函数的指针。2.定义方式:类型名 (*指针变量名)(函数参数表列);例如:int (*p)(int,int);3.注意事项(1)定义p是一个指向函数的指针变量,它可以指向函数的类型为整型且有两个整型参数的函数。需要特别注意的是,指向函数的指针变量只能指向在定义时指定的类型的函数。例如上述的指针变量p只能指向函数返回值为整型且有两个整型参数的函数。原创 2021-09-26 15:46:14 · 116 阅读 · 0 评论 -
c语言指针的深入浅出---part1
一.指针和指针变量一个变量的地址称为该变量的指针。如果有有一个变量专门用来存放另一个变量的地址,则它称为指针变量。指针变量就是地址变量,用来存放地址,指针变量的值是地址(即指针)。指针是一个地址,而指针变量是存放地址的变量。二.指针变量的定义及相关的符号1.定义形式类型名 * 指针变量名2.关于"*"号运算符的辨析#include<stdio.h>int main(){ int a=1; int *p; p=&a; printf("%d\n",*p); ret原创 2021-09-25 17:07:19 · 358 阅读 · 1 评论 -
关于C语言常量的深入浅出
一.常量的类型1…整型常量100,-100,20.5等二.实型常量1.十进制小数形式。123.456,12.3等2.指数形式。由于计算机在输入或输出时,无法表示上角或下角,故规定字母e或E代表以10为底的指数。但应注意:e或E之前必须有数字,且e或E之后必须为整数,且e或E后面的数一定要为10进制数,不能为8进制或16进制数。三.字符常量1.普通字符。如’a’,'b’等。2.转义字符。就是以字符\开头的字符序列。需要特别注意的是:(1) /o。o表示的八进制数。/o表示的是八进制数对应的a原创 2021-09-24 17:20:07 · 225 阅读 · 0 评论 -
深入辨析c语言中运算符的优先级问题
一.基本的运算符的优先级(谭海强第四版)二.常用的运算符的一般性总结当我们计算一个复杂的算术表达式时,其构成最多的便是算术运算符,关系运算符和逻辑运算符(&&,||)。 注意这几种运算符的结合性都是从左到右(注意逻辑非的结合性为从右到左),优先级的大小为 !(逻辑非运算符) > 算术运算符 > 关系运算符 > &&,|| (逻辑与运算符和逻辑或运算符) 。进一步研究这些常见的运算符1.算术运算符构成+, - , * , / , %原创 2021-09-24 17:01:03 · 6985 阅读 · 2 评论 -
用C语言实现一个简单的管理系统
相比于简单的C语言程序,用C语言写一个管理系统就显得相对复杂很多。在写代码之前,我们首先应有应有一个系统的基本框架,如该系统应该要实现那一些功能,这里我们以“员工管理系统”为例,我们应该建立一个菜单,读取文件的数据并创建链表,将链表中的信息写进文件,删除结点,增加结点,修改结点,以及链表的遍历。当我们明确一个系统应该要实现的功能后,便找到了问题的突破口,接下来只需要将各个功能用函数一一实现即可。...原创 2019-04-11 21:15:46 · 8575 阅读 · 0 评论 -
简析C语言文件中的ASCII码
在C语言程序中,经常使用数据文件存储程序所需的数据。数据文件分为文本文件和二进制文件两类。文本文件的实质是一个个字符所组成的,简单的说就是用ASCII码进行存储,这样的文档易于储存与修改。二进制文件相对来说在C语言中操做起来比较方便,本质上是数据内存的隐射。下面我们对文本文件进行具体分析:如何将文本中的字符转化为ASCII码呢?一.将字符转化为ASCII码我们首先应该明白文本文件中字符和其...原创 2019-04-13 17:19:10 · 2499 阅读 · 0 评论 -
c++用链栈来实现算术表达式的计算
在我们的日常生活中,我们更习惯使用操作符在操作数之间的中缀表达式,eg:2+3,但在用计算机实现算术表达式的运算时,考虑到运算效率以即各方面的因素时,应将其转化为后缀(3 4 +)或者前缀表达式(+ 3 4)进行处理运算。以下笔者采用后缀表达式来分析“用栈来实现算术表达式的计算”的具体实现过程。一.实现思想在进行算术运输时,我们必须要有操作数和操作符,操作数又分为左操作数和右操作数,而操作符...原创 2019-11-09 11:23:01 · 1645 阅读 · 0 评论