自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (5)
  • 问答 (2)
  • 收藏
  • 关注

原创 防止头文件重复包含之pragma once与#ifndef

在我们自己编写 C/C++的头文件时,可能会忽略一点:用一些处理机制来避免头文件的重复包含,因为头文件的内容在编译 #pragma once #ifndef #define #endif

2016-03-31 00:01:49 918 1

原创 Waiting For Debugger

最近楼主在使用手机上的邮政银行时,总是打不开,要强制关闭,给我一个“Waiting For Debugger”的提示,相信朋友们应该遇到过类似的问题,当然这里不一定就是邮政银行出问题,可能是你手机里的任意一款软件,这里教给大家一张解决的办法。问题具体如下图:开始没管,想着也不咋用邮政银行,打不开就打不开吧!但是终于,楼主的强迫症犯了,非得想解决问题,不然坐立不安的。于是开始搜罗相关资料(其实也就是百

2016-03-30 19:58:48 4526

转载 对堆栈的认识

什么是堆和栈,它们在哪儿?问题描述编程语言书籍中经常解释值类型被创建在栈上,引用类型被创建在堆上,但是并没有本质上解释这堆和栈是什么。我仅有高级语言编程经验,没有看过对此更清晰的解释。我的意思是我理解什么是栈,但是它们到底是什么,在哪儿呢(站在实际的计算机物理内存的角度上看)? 1、在通常情况下由操作系统(OS)和语言的运行时(runtime)控制吗? 2、它们的作用范围是什么? 3、它们的大

2016-03-29 01:51:38 2304 2

原创 初识C++之运算符重载

define

2016-03-28 15:01:46 561

原创 初识C++之剖析const与#define

1、 编译器处理方式不同   #define是一个宏定义命令,它是在预处理阶段就进行了替换;   const修饰的是一个编译时常量,它是在编译阶段处理的。 2、 类型和安全检查不同   #define定义的标识符仅仅是产生文本替换,不管内容是否正确;   const修饰的符号是一个具有类型的符号,编译器在编译时会对其做严格的检查。 3、书写方式不同   #define是一个预处理命令,

2016-03-26 17:44:36 468

原创 初识C++之指针与引用

1、What a. 指针: 指针可以看做是一个特殊的变量,它是用来存放变量的地址值的。 b. 引用 引用的话,可以看做是给变量起的一个别名,而不是定义一个新变量,它与那个变量的本质是相同的,内容与地址都是一样的。2、Distinction a. 引用使用时无需解引用(*),指针需要解引用; b. 引用没有 const,指针有 const; c. 指针是一个实体,而引用仅是个别名; d

2016-03-26 16:56:31 661 2

原创 如何克服拖延症

拖延几乎成为现代人的通病,“先放一下,待会再行动”成为拖延者最大的思想毒瘤,如何积极地克服拖延症,已经成为了一个大课题。1、正视自己的拖延症。 要改掉拖延症坏毛病,首先就是要正确认识到拖延症的危害,正视自己拖延行为是错误的。拖延症往往会让一个人经常性的不能完成任务,耽误时间浪费精力。而且今天的事情拖明天,明天的事情拖后天,周而复始,一直持续焦虑和紧张状态中。不仅对工作学习不利,对身心健康也有极大的

2016-03-26 01:50:01 870

原创 强迫症的自我恢复

怎样克服强迫症?这是很多的人比较关注的一个问题。强迫症给人们的工作和生活带来很严重的影响,如果不及时进行治疗,对人的健康损害是很大的。那么怎样克服强迫症呢?下面就介绍一些怎样克服强迫症的调试方法,希望能帮助到更多的患者朋友。1、了解病因和发病机制 强迫症与一定的人格特征有密切关系。具有强迫症的人,在性格上往往表现出谨小慎微,墨守成规,缺乏自信,胆小怕事,优柔寡断,办事过于认真,喜欢过细地思考问题,

2016-03-26 01:44:51 3270 2

原创 乱入的'\0'

看这个题之前,先来回忆一下strlen函数的工作机制: strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,每碰到一个非’\0’的字符,计数器的值加1,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0’)。#include <stdio.h>int main(){ char a[10

2016-03-26 01:32:13 498

原创 const在C与C++中的区别

1、C语言中的const a. 修饰变量 使用const修饰变量,使该变量的值不能被修改 b. 修饰函数参数

2016-03-26 00:13:17 1029

原创 初识C++之函数重载

最近开始学习C++,了解到它在C语言没有的一个特性 – 函数重载,这一特性使得c++的函数数量得以减少,减小了对名字空间的污染,另外对程序的可读性也有很大帮助。那么c++的函数重载这一特性是怎么实现的,为什么不会发生命名冲突呢?别的函数在调用这些函数时编译器是怎么解析的呢?怎么知道它该调用哪一个函数呢?下面就这些问题来做一些简单解析。1、what and whywhat:C++允许在同

2016-03-25 16:44:42 1027

原创 重载函数编译后的新名字

我们都知道很多语言都支持函数重载,那么编译器是怎么处理编译后它们的命名冲突的呢?1、先给出几个正确的重载函数:#include <iostream>using namespace std;int Add(int a, int b){ return a + b;}double Add(double a, double b){ return a + b;}double Add

2016-03-25 16:31:08 1861

原创 有趣的for循环

#include <stdio.h>int main(){ int i = 0; for(i = 0, printf(" First = %d", i);i<10, printf(" Second = %d", i);i++, printf(" Third = %d", i)) { printf(" Fourth = %d", i); }

2016-03-24 20:53:03 1355

转载 前置++与后置++之一道简单的题目引发的思考

引言昨晚一时兴起,我脑子就问自己下面的代码会输出什么,也不知道我脑子为什么有这个代码模型,只是模糊的有些印象:#include <stdio.h>#include <stdlib.h>int main(int argc,char** argv){ int i=3,j; j=(i++)+(i++)+(++i); printf("i = %d, j = %d\n",i,j);

2016-03-24 01:36:13 799

原创 线性表之顺序表与单链表的区别及优缺点

这里比较的是基于C语言实现的顺序表与单链表,与其他语言的实现可能会有差异,但我相信语言是相通的,它们的实现机制应该也差不多。 1、What 什么是顺序表和单链表 ①顺序表: 顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。只要确定了起始位置,表中任一元素的地址都通过下列公式得到:LOC(ai)=LOC(a1)+(i-1)*L  1≤i≤

2016-03-23 23:43:04 33480 9

转载 复杂链表的复制

题目:请实现函数ComplexNode* Clone(ComplexNode* pHead),复制一个复杂链表。在复杂链表中,每个结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任一结点或者NULL。其结点的C++定义如下:struct ComplexNode{int m_nValue;ComplexNode* m_pNext;ComplexNode* m_

2016-03-21 15:31:37 697 1

原创 C语言实现单链表面试题汇总

这篇博客只有针对单链表的不同面试题的不同函数,没有对单链表的具体实现方法的介绍。 单链表的具体实现方法(创建,初始化,前插,后插,删除,插入,销毁等),可以参考我的另一边博客: http://blog.csdn.net/ljx_5489464/article/details/50893430以下是单链表面试题的具体实现:1、从尾到头打印单链表void PrintListTailToHead(PS

2016-03-20 03:51:53 2913

原创 printf函数的格式修饰符

本文介绍printf函数的一些特殊的格式控制修饰符1、域宽修饰符 –> 数字 对所有格式控制符都有效,即便是%%也不例外 宽度修饰符出现在%和格式控制符之间的数字,使数据在固定区域打印。如果待打印的数值不能填满位置,它的左侧会被天上空格以满足填满域宽区域,这些数值是右对齐的;如果超过了给定域宽,输出区域会调整域宽以恰好能容纳该数值,而不会把该数值截断。#include <stdio.h>int

2016-03-16 01:18:56 7007

原创 vim复制、删除和粘贴一行

声明:下面的操作的都是在基本模式(Esc),否则无法操作。1、复制命令:  y1 复制光标处的一个字符到缓冲区   yw 复制当前单词到缓冲区   yy 复制当前行到缓冲区   nyy / yny 复制当前行及其下面n-1行的内容到缓冲区    2、删除命令 dd 删除当前行到缓冲区 x 删除光标处的一个字符到缓冲区3、粘贴命令 p 粘贴当前缓冲区的

2016-03-15 14:15:21 13200

原创 C语言实现单链表

1、用于存放声明的头文件#define _CRT_SECURE_NO_WARNINGS#pragma once#include <stdio.h>#include <assert.h>#include <malloc.h>typedef int DataType;typedef struct SListNode{ DataType data;

2016-03-15 04:07:19 2075

原创 CentOS设置

我的CentOS是在VMware Workstation里面装的虚拟机,但操作都是一样的1、设置系统语言 许多人在安装CentOS系统时,可能在开始阶段选择区域及语言时选择了非中文,而却想在中文环境下使用系统,却苦于不知道如何切换到中文系统,其实,很简单 开机时,选择好用户,输入用户对应的开机密码时,进行如下操作接着:点击其它 –> 把下拉框拉倒最下面 –> 点击汉语中国 –> 回到登录界面 –

2016-03-15 01:04:33 648

原创 C语言实现动态顺序表

1、用于存放声明的头文件#pragma once //避免重复引入头文件,作用于预编译指令几乎相同#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <assert.h>#include <malloc.h>typedef int DataType;typedef struct SepList_d{ DataTy

2016-03-14 13:33:19 2280

原创 C语言实现静态顺序表

1、用于存放声明的头文件#ifndef __SEP__LIST__#define __SEP__LIST__#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <assert.h>#define MAX_SIZE 10 //使顺序表中可以插入的数据是可以很方便调整的typedef int DataTy

2016-03-14 13:28:07 843

原创 电脑快捷键大全

1.很多时候,需要暂时离开座位去做别的事情,如果对自己的电脑安全很重视,不妨按住windows键后,再按L键,这样电脑就直接锁屏了,这样就不用担心电脑的资料外泄啦。 2.要找电脑上的文件时,一般人会先找到“我的电脑”,然后点击打开,而高手总是很酷的,轻轻按下键盘上的Windows键不放然后再按E键,直接打开电脑的资源管理器,而一般人还在慢慢寻找“我的电脑”的图标呢,嗯,高手就是这样直接把一

2016-03-14 13:23:51 448

原创 跳出循环的三种方式

break、continue、goto三个关键字都可以用于跳出循环,但三者跳出循环的情况却有所不同 braek:跳出本层循环,执行本层循环下面的语句。 continue:终止本次循环,进入下一次循环。 goto:调到标号所在位置,执行标号下面的语句,它比较方便的是可以一次跳出多重循环,但是它只能在函数内跳转,不能在函数间跳转。goto语句有一定的弊病,会使程序的流程变得混乱,有时会难以理解,并

2016-03-10 14:24:01 63149 1

原创 运算符求值顺序

&&与||两个运算符的求值顺序是非常重要的,因为很多判断语句都是基于它们拥有一定的求值顺序才能正确进行的。eg: if((num1 != 0) && (num2 / num1 \ > num2 - num1)) 上面的if()判断语句合理的运用了&&运算符,使之不会出现0做除数的情况(num1 = 0时),因为&&运算符的求值顺序是从左到右的,且它有一个特性,就是当左边的值为假时,就不用再求右边

2016-03-10 13:26:34 846

原创 main()函数参数

很多人学了很长时间的C语言,可能还不知道mian()函数也是有参数的,甚至会说,main()函数哪来的参数,我从来都没见到过,更没有使用过,然而,不得不说,main()函数确实是有参数的。main函数的参数: main(int argc , char *argv [] , char *envp) 1、int argc: argv数组中元素的个数(不包括NULL) 2、char *argv

2016-03-10 10:30:58 1005

原创 测试机器大小端的方法

首先,给出一些大小端相关概念。大小端的由来: 在乔纳森·斯威夫特的著名讽刺小说《格列夫游记》中,小人国内部分裂成Big-endian和Little-endian两派,区别在于一派要求从鸡蛋的大头把鸡蛋打破,另一派要求从鸡蛋的小头把鸡蛋打破。斯威夫特借以讽刺英国的政党之争,在计算机工业中指数据储存顺序的分歧。大小端概念: 小端模式: 小端模式(Little-endian),是指数据的高字节保存在

2016-03-10 09:29:06 3062

原创 悬挂“else”

else匹配规则:与它上面的距离它最近的且在同一级语句块的一个未与else匹配的if语句匹配 初接触C语言的同志可能会犯下面这种错误if(x == 0 if(y == 0) { printf("这里有两个if语句\n"); }else{ printf("只有一个else语句,它将要与谁匹配呢?\n");}本意是想把else与第一个if语句匹配,

2016-03-10 00:03:53 986

原创 不同类型的变量与零值比较的方法

在if()、while()等语句块中,我们经常会遇到变量与零值比较的情况,然而不同的类型的变量与零值的比较方法是有一定标准的,编程时最好遵守这些标准,否则会发生一些难以预料的错误。

2016-03-09 23:41:34 409

原创 字符变量存放多个字符

在我们的认知中,不会有字符变量中存放多个字符的情况(不要说\n、\t等,这些本来就被C语言标准定义为是一个字符),因为一个字符变量就只占1个字节空间,只能存放一个字符,但往下看,你会感到意外。用代码验证一下:#include<stdio.h>int main(){ char c = 'bit'; printf("%c\n", c); system("pause");

2016-03-09 23:11:34 3066

原创 函数声明

对C缺陷与陷阱里第二章第一节里面的函数声明的一些段落的理解

2016-03-09 15:59:14 267

原创 分号不是个“随便的人”

分号是个很不起眼的东西,但在C语言编程里面,它的作用不可忽视,多写与漏写都会造成不可预料的错误,下面就列举一些常见的错误。1、多谢了分号 if或while语句块内如果只有一条语句,那么可以省略大括号的书写,然而,当他们的条件判断框后面不小心加了一个”;”时,会使本来想要在if或while条件成立时执行的语句替换成了一个空语句,把原来要执行的语句“挤到了”if或while语句块外面,使其不管if或w

2016-03-09 15:32:05 486 1

原创 switch()语句块的出口:break;

switch()语句块里的case:相当于一个开关,只要满足case的条件,开关就打开,今儿执行case语句块的内容,而break就相当于一个出口,只要碰到了break,就跳出switch语句块,否则就继续执行下一条语句,直到碰到了break或者switch语句块已经全部执行才会跳出语句块。#include<stdio.h>int main(){ int num = 0; prin

2016-03-09 15:00:14 1822

原创 运算符优先级与结合性

优先级的序号越小,优先级越高。

2016-03-09 14:18:05 764

原创 C语言实现通讯录

通过本次码代码的过程,对预处理机制以及一个工程的分块完成有了一定认识,主要需要对结构体变量的定义及使用方法和文件的操作方法能基本掌握,同时对函数的封装以及调用有了更深一步的理解1、用于声明的头文件#define _CRT_SECURE_NO_WARNINGS 1#include"contact.h"int main(){ Contact pcon = { 0 }; load_con

2016-03-09 00:52:34 963

原创 C语言注释与C++注释的相互转换

做此项目的经历主要的收获是熟悉了状态机这一方法的使用,还有就是对每实现一个功能就尽量封装一个函数这一概念把握的更为精到。状态机:关于状态机的一个极度确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件而“运行”。每个事件都在属于“当前” 节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。函数返回“下一个”(也许是同一个)节点。这些节点中至少有一个必须是

2016-03-09 00:26:05 1900

原创 scanf()函数错误把输入缓存里的回车作为一次字符输入

有时我们会需要连续的从标准输入中多次读入数据时,那么就可能存在连续使用多次scanf()函数的情况。然而在连续使用scanf()函数时可能会出现一些难以预料,不易发现的坑#include <stdio.h>int main(){ char str[20] = { 0 }; char c = 0; scanf("%s", str); scanf("%c", &c);

2016-03-08 23:43:46 4825

原创 多维数组元素的下标引用与指针访问

在这儿值介绍二维数组元素的访问方式,三维、四维……的与之类似。 先用一位数组的相关知识来抛砖#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>//1、一维数组元素的下标引用与指针访问int main(){ int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; printf("%d\n"

2016-03-06 19:46:50 1969

VC6.0批量添加和取消注释.zip

添加此宏之后,VC6.0可实现批量添加注释和取消注释,非常方便

2016-04-08

谷歌浏览器迅雷支持插件

使谷歌浏览器能支持迅雷下载

2016-03-25

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除