- 博客(21)
- 收藏
- 关注
转载 2016123
1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:#define PI 3.1415926程序中的:area=PI*r*r 会替换为3.1415926*r*r如果你把#define语句中的数字9 写成字母g 预处理也照样带入。2)typedef是在编译时处理的
2016-12-03 20:11:38 205
原创 20161126
由于身体原因,最近没有更新博客Orz今日学习总结:数据结构的理解与链表的操作,数据结构在我理解,是对存在某些联系的元素,以其联系的方式不同,选择适当的存储类型对其进行存储的过程,从逻辑上,有集合,树,图,线性的联系,物理上,连续存储和不连续存储的存在。链表的基本操作有初始化,插入,遍历,删除,检查等类型,根本上,是通过操作外部目标指针的指向目标来实现将已开辟的单个节点连贯起来的操作,如头插入操
2016-11-26 22:20:08 165
转载 20161118
Linux下密码*回显方式#include #include #include #include #define ENTER 13int main(void){ char *passwd="12345678"; char pass[9]; int i=0; initscr(); //初始化 printw("
2016-11-18 22:08:58 169
转载 20161116
野指针主要是因为这些疏忽而出现的:折叠指针变量未初始化任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。折叠指针释放后之后未置空有时指针在free或delect后未赋值 NULL,便会使人以为是合法的。别看free和delete的
2016-11-16 22:39:29 222
转载 20161114
1.C语言总结:“野指针”的成因主要有两种:(1)指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。例如复制代码 代码如下:char *p = NULL; char *str = (char *) malloc(100)
2016-11-14 20:49:37 220
原创 20161113
今日学习总结:使用指针的几大注意要点:1.需要养成良好的编程习惯,当指针无指向时,初始化为空,用于警示。2.当向指针指向的内存空间赋值的时候,检查有无开辟堆空间3.检查malloc所开辟内存空间是否成功,若不成功,则exit(1)退出程序,并输出malloc error4.对所开辟的内存空间进行初始化,memset(空间地址,初始的字符,大小)5.在结束时需要free6对指
2016-11-13 22:26:16 219
转载 2016 11 12
C语言总结:库的创建:1.静态库:ar –rcsvlibXXX.a func1.o func2.o func3.o (- r:在库中插入模块(替换)。当插入的模块名已经在库中存在,则替换同名的模块。 -s :写入一个目标文件到库中 a – XXX.o 在库的最后添加一个新文件 v :显示信息 c:表示只编译,不链接)3. 静态库的使用:gcc main.c
2016-11-12 22:20:57 161
原创 2016 11 11
今日错题解析:3.若有说明:int *p,m=5,n;以下程序段正确的是 c 。A)p=&n ; B)p = &n ; scanf(“%d”,&p); scanf(“%d”,*p);C)scanf(“%d”,&n);
2016-11-11 22:18:22 321
转载 2016.11.10
C语言今日学习总结:printf函数的使用技巧 颜色代码: QUOTE: 字背景颜色范围: 40–49 字颜色: 30–39 40: 黑 30: 黑 41: 红 31: 红 42: 绿 32: 绿 43: 黄 33: 黄 44: 蓝 34: 蓝 45: 紫 35: 紫 46: 深绿 36: 深绿 47: 白色 37: 白色ANSI控制码:
2016-11-10 22:16:04 175
原创 2016.11.7
1.C语言总结:1.算数运算符难点:1 优先级问题,2.i++,和++i问题,可以理解为在gcc中,i++可以暂时被替换为常量i,在遇到结束语句(;号,逗号和函数的括号)再进行i = i+1的运算,++i可以理解为,首先进行i =i+1操作,再替换为变量,另外,在形参传递的时候linux环境下的传递是从右向左依次传递的。2)位运算中的位运算符和逻辑运算符注意分清楚,另外,学习到了一个交换两个数
2016-11-07 21:47:45 170
原创 2016.11.5
今日学习总结:1.C语言总结:1)sizeof和strlen的区别:首先sizeof是运算符而stlen是函数,其次,sizeof可以用任何类型做参数,而strlen只能用char *来做参数,其次,对于同一个char*来说,strlen测试的是所指向的字符串的数量,sizeof测试的是指针本身的大小。2)typedef的作用:给数据类型重命名,便于修改,提高代码的可移植性,3)变量的
2016-11-05 21:53:14 198
原创 2016.11.3
1.C语言:今日学习,原码反码,补码,原码将最高位做为符号位(0代表正,1代表负),其余各位代表数值本身的绝对值反码一个数如果值为正,那么反码和原码相同一个数如果为负,那么符号位为1,其他各位与原码相反补码原码和反码都不利于计算机的运算,如:原码表示的7和-7相加,还需要判断符号位。正数:原码,反码补码都相同负数:
2016-11-03 22:32:33 207
原创 2016.11.2
1.今日总结:今天主要学习了AVL树和树的旋转,AVL树的定义是树的任意左右子树深度都小于2,定义AVL树的意义在于其可以有效的减少时间复杂度O(log)。另一方面,AVL树可以很好的保证树的平衡性,树的旋转是实现AVL树的一种方式,具体分为双旋转和单旋转,单旋转适用于一字型结构,双旋转适用于之字型结构(左右和右左两种关系)。另附上树的遍历伪码。
2016-11-02 21:07:14 168
原创 2016.111.1
1.C语言总结:1.&、*和数组的深入理解:在计算机保存方式上,数据首元素,&数组首元素,*数组首元素的基地址是一样的,但是其步长不一样,另,int * p=&a是声明指向整形变量的语句,其正确的理解方式应该是(int *)p=&a.2.函数间通信方式有两种,参数传递,数组传递。2.汇编相关知识,略
2016-11-01 22:19:14 152
原创 2016.10.31
1.C 语言总结:1)对数组和指针的理解:指针表示的是一个位置,故其需要依附于内存空间而存在,而且指针本身也是存储在存储指针的内存中,而数组是在内存空间中开辟出一块地方来存储数据,故说,数组和指针虽然有很大的联系,但其也是不同的存在,另,指针在表示数据时,应该事先开辟出一部分内存,后释放之,数组和指针的联系主要体现在两个方面,一方面,数组名本身就是下标为0的元素的地址,另一个方面,数组和指针在函数
2016-10-31 17:27:23 163
原创 2016.10.30
今日学习总结:1.C语言总结:1)几种基本数据类型的写法与用法 2)指针与数组的复杂声明的表示与意义,遵循左右法则,即先右后左,依次判断,例子:void * ( *c) ( char , int (*)());,首先,从C变量开始判断,其是一个指针变量,再从右开始判断,遇到左括号,判断其是一个函数,接着函数进行判断,其有两个形式参数,
2016-10-30 20:49:05 173
原创 2016.10.29
今日学习总结:1.C语言:1)学习了几个算法,1.1~100的素数显示,其逻辑是一个变量控制当前测试的值,一个变量分别与其求余,若存在等于零,则flag变量置一,退出循环,若没有,输出那个数。 2)1~1000的完数算法,与素数显示类似,一个变量控制当前测试的值,一个变量分别求余,若存在等于零,累加之,若累加后的值与原数相等,输出。3)输出1~100的9的个数,具体代码是#include
2016-10-29 20:44:58 185
原创 2016.10.28
今日学习总结:(然而今天做电脑系统做了一天Orz,坑比国产盗版ghost系统)linux根目录下各目录包含的文件:root:存放root用户相关文件的目录!home:存放普通用户相关文件的目录bin: 存放常用命令的目录!sbin:要具有一定权限才可以使用的命令!mnt: 默认挂载软驱和光驱的目录!boot:存放引导相关的文件! etc: 存放配置相关的文件
2016-10-28 20:50:08 170
原创 2016.10.26
今日学习总结:1.C语言:杨辉三角的几种算法:1.调用函数,利用在子函数递归的方法,来保证杨辉三角的正确性。2..利用数组,#includevoid main(){int i,j,a[10][10];for(i=0;ifor(j=0;j{ if(j==1||i==j)a[i][j]=1;else a[i][j]=a[i-1][j]+a[i-1][j-1];p
2016-10-26 20:01:13 167
原创 2016.10.25
1.C语言总结:1.可运用循环函数的反复覆盖MAX和MIN来确定数据的最大值和最小值。2.对于数组的赋值有两种方法:第一种是通过循环函数运用地址运算符和带下标的数组来赋值,第二种是通过数组名(此时不需要地址运算符)来对数组赋值,3.scanf函数双引号内部的结构是多样的(例子:计算器的实现)。4.算法的数学等价问题转化方法很重要,可以解决很多表面做不出来的问题。2.linux的
2016-10-25 21:24:38 172
原创 2016.10.24
今日总结:1.C语言总结:输出规则图形的两种算法:1)不固定每行输出数的方法,一个常量控制行数,一个变量控制每一行输出的字符,用数学方法确定字符的X坐标,同时,控制空格的数量。 2)固定每行输出数的方法:两个常量分别控制行数和列
2016-10-24 20:20:22 138
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人