摘要: 不知你在写code时是否遇到这样的问题?int i = 3; int x = (++i) + (++i) + (++i); 问x值为多少?进行各种理论分析,并在编译器上实践,然而可能发现最终的结果是不正确的,也是不稳定的,不同的编译器可能会产生不同的结果。这让人很头疼。结果到底是啥呢?对于此题的答案,一句话,Theresult is undefined! 详细解释待我慢慢说来。 阅读全文
posted @ 2011-12-14 21:02 东方雨中漫步者 阅读(3570) 评论(1) 推荐(1) 编辑
摘要: 函数指针和指针函数是C语言中的一个挺常见的问题,对于新手来说,若不加以区分,还真是个难点。针对此问题,本章专门介绍了二者之间的区别,让读者对函数指针和指针函数有更深入的了解。   函数指针和指针函数都是概念简称,指针函数是指返回值是指针的函数,即本质是一个函数。而函数指针是指向函数的指针变量,即本质是一个指针变量。 阅读全文
posted @ 2011-12-14 20:04 东方雨中漫步者 阅读(2028) 评论(0) 推荐(0) 编辑
摘要: 题目:给出n个互不相同的字符, 并给定它们的相对大小顺序,这样n个字符的所有排列也会有一个顺序. 现在任给一个排列,求出在它后面的第i个排列. 这是一个典型的康拓展开应用,首先我们先阐述一下什么是康拓展开。 (1)康拓展开   所谓康拓展开是指把一个整数X展开成如下形式:   X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[2]*1!+a[1]*0!。(其中,a为整数,并且0=a[i]i(1=i=n)) (2)应用实例 阅读全文
posted @ 2011-12-12 20:19 东方雨中漫步者 阅读(1685) 评论(0) 推荐(3) 编辑
摘要: grep是linux中很常用的一个命令,主要功能就是进行字符串数据的对比,能使用正则表达式搜索文本,并将符合用户需求的字符串打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。grep在数据中查找出一个字符串时,是以整行为单位来进行数据选取的。 阅读全文
posted @ 2011-12-12 20:18 东方雨中漫步者 阅读(28759) 评论(0) 推荐(1) 编辑
摘要: cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。 (1)其语法格式为: cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file] 使用说明 cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。 如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。 阅读全文
posted @ 2011-12-09 20:28 东方雨中漫步者 阅读(269268) 评论(16) 推荐(27) 编辑
摘要: sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式:   sort [-bcfMnrtk][源文件][-o 输出文件] 补充说明:sort可针对文本文件的内容,以行为单位来排序。 参  数: -b 忽略每行前面开始出的空格字符。 -c 检查文件是否已经按照顺序排序。 -f 排序时,忽略大小写字母。 -M 将前面3个字母依照月份的缩写进行排序。 -n 依照数值的大小排序。 -o 将排序后的结果存入指定的文件。 -r 以相反的顺序来排序。 -t 指定排序时所用的栏位分隔字符。 -k 选择以哪个区间进行排序。 阅读全文
posted @ 2011-12-08 20:17 东方雨中漫步者 阅读(172883) 评论(1) 推荐(5) 编辑
摘要: sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法 sed命令行格式为: sed [-nefri] ‘command’ 输入文本 常用选项: -n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。 -e∶直接在指令列模式上进行 sed 的动作编辑; -f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作; -r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法) -i∶直接修改读取的档案内容,而不是由萤幕输出。 阅读全文
posted @ 2011-12-07 21:16 东方雨中漫步者 阅读(438968) 评论(6) 推荐(45) 编辑
摘要: awk是一个非常棒的数字处理工具。相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分为数个“字段”来处理。运行效率高,而且代码简单,对格式化的文本处理能力超强。先来一个例子:   文件a,统计文件a的第一列中是浮点数的行的浮点数的平均值。用awk来实现只需要一句话就可以搞定 $cat a 1.021 33 1#.ll 44 2.53 6 ss 7 awk 'BEGIN{total = 0;len = 0} {if($1~/^[0-9]+\.[0-9]*/){total += $1; len++}} END{print total/len}' a (分析:$1~/^[0-9]+\.[0-9]*/表示$1与“/ /”里面的正则表达式进行匹配,若匹配,则total加上$1,且len自增,即数目加1.“^[0-9]+\.[0-9]*”是个正则表达式,“^[0-9]”表示以数字开头,“\.”是转义的意思,表示“.”为小数点的意思。“[0-9]*”表示0个或多个数字) 阅读全文
posted @ 2011-12-06 20:32 东方雨中漫步者 阅读(97078) 评论(0) 推荐(4) 编辑
摘要: C及C++语言中,最让人头疼的就是指针问题了,这章主要介绍一下关于指针及指针的指针的概念。区分*p与**p的区别。 (1)、指针概念 当我们程序如下申明变量: short int i; char a; short int * pi; 程序会在内存某地址空间上为各变量开辟空间,如下图所示。 阅读全文
posted @ 2011-12-05 19:49 东方雨中漫步者 阅读(1630) 评论(1) 推荐(1) 编辑
摘要: 关于C++中cout的使用,相信大家再熟悉不过了,然而对于cout是如何输出的?输出的机制是啥,需要进一步的了解。本章娓娓道来。前几天在网上看到这么一个题目: 阅读全文
posted @ 2011-12-03 20:52 东方雨中漫步者 阅读(1862) 评论(2) 推荐(2) 编辑