
C/C++
文章平均质量分 73
dengnice
ZJUer,把生命中一切话题上升为玩笑。
展开
-
char const * ,char *const, const char *的区别
根据网上的资料和自己实验的代码总结:Bjarne在他的The C++ Programming Language里面给出过一个助记的方法:把一个声明从右向左读。 char * const cp; ( * 读成 pointer to ) cp is a const pointer to char const char * p; p is a pointer to const char; char const * p; 同上因为C++里面没有const*的运算符,所以const只能属于前面的类型。原创 2010-10-27 23:42:00 · 1211 阅读 · 2 评论 -
linux 下strftime()的用法
我们可以使用strftime()函数将时间格式化为我们想要的格式。它的原型如下:size_t strftime( char *strDest, size_t maxsize, const char *format, const struct tm *timeptr );我们可以根据format指向字符串中格式命令把timeptr中转载 2011-06-10 15:18:00 · 1021 阅读 · 0 评论 -
Linux下C语言编程——关于进程
摘抄网上的pdf文件,有增改。一:五种状态: 1.新建:表示进程正在被创建。 2.运行:表示进程正在运行。 3.阻塞:进程正在等待某一个事件发生。 4.就绪:表示系统正在等待CPU来执行命令。 5.完成:表示进程已经结束,系统正在回收资源。二:getpid()可以得到进程的ID,getppid()可以得到父进程的ID.#includepid_t getpid(void);pid_t getppid(void);getuid可以得到进程的所有者的ID。由于进程要用到一些资源,而Linux对系统资源是进行保护的原创 2011-02-23 16:58:00 · 1472 阅读 · 0 评论 -
(*(volatile unsigned int *))详解
<br /><br />最开始看到volatile的时候相当费解,后来到网上去查看了下,大致明了。<br /> <br />使用一个32位处理器,要对一个32位的内存地址进行访问,可以这样定义<br />#define RAM_ADDR (*(volatile unsigned long *)0x00000000)<br />然后就可以用C语言对这个内存地址进行读写操作了<br /> <br /> 读:tmp = RAM_ADDR;<br /> 写:RAM_ADDR = 0x55;<br /> <br />转载 2011-02-23 15:41:00 · 6448 阅读 · 0 评论 -
各种实用排序算法
<br />实用排序算法(复杂度小于等于O(n^2))中效率最低但实现并不是最简单的的两个,C、C++教材却总喜欢拿来大讲特讲,非常不利于初学者养成“程序效率”的思维。<br /><br />实际上,各种排序算法里,除了堆排序实现较为复杂外,从代码量的角度,大多数算法都不比冒泡、选择算法复杂多少。<br /><br />举几个高速的排序算法的例子,这些才适合进入教材<br /><br />鸽巢排序,排序字节串、宽字节串最快的排序算法,计数排序的变种(将计数缓冲区大小固定,少一次遍历开销),速度是STL中st转载 2011-02-20 16:27:00 · 722 阅读 · 0 评论 -
hdoj 2095
题目大意:在输入的数列中 找唯一出现奇数次的一个数。一开始没看到memory limit 直接开了个100000的int数组 然后排序 找出在奇数数位置上与下一位不同的数。网上的大牛们还是那么牛 巧妙地用异或运算 还有用map映射复习下异或~0^0 =00^1=11^0=11^1=0可以发现 任何数异或0还是他本身。一个数异或另一个数偶数次还是他本身。奶奶的,这思路。。。我在看看映射去。。。#include //题目中Odd 是奇数的意思int main(){ int num,n,r转载 2011-02-07 03:25:00 · 887 阅读 · 0 评论 -
scanf和cin的区别
睡不着,难得失眠,其实也不是失眠,白天睡多了。忽然想起白天做的一道题目,有个小提示,输入要用scanf,当时不知道为什么,刚百度了下,废话少说。下面是百度知道里面的。————————————————————————————————————————————————————scanf是格式化输入,printf是格式化输出。cin是输入流,cout是输出流。效率稍低,但书写简便。格式化输出效率比较高,但是写代码麻烦。流输出操作效率稍低,但书写简便。cout之所以效率低,正如一楼所说,是先把原创 2011-02-07 02:41:00 · 17751 阅读 · 5 评论 -
串口通讯流控制
我们在串行通讯处理中,常常看到RTS/CTS和XON/XOFF这两个选项,这就是两个流控制的选项,目前流控制主要应用于MODEM的数据通讯中,但对普通RS-232编程,了解一点这方面的知识是有好处的.那么,流控制在串行通讯中有何作用,在编制串行通讯程序怎样应用呢?这里我们就来谈谈这个问题。流控制在串行通讯中的作用:这里讲到的"流",当然指的是数据流.数据在两个串口之间传输时,常常会出现丢失数据的现象,或者两台计算机的处理速度不同,如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢原创 2011-02-06 18:55:00 · 1016 阅读 · 0 评论 -
Linux下C语言编程——文件操作
#include ;#include ;#include ;#include ;int open(const char *pathname,int flags);int open(const char *pathname,int flags,mode_t mode);int close(int fd);open 函数有两个形式.其中 pathname 是我们要打开的文件名(包含路径名称,缺省是认为在当前路径下面).flags 可以去下面的一个值或者是几个值的组合. O_RDONLY:以只读的方式打开文件.原创 2011-02-25 11:11:00 · 4323 阅读 · 0 评论 -
分割字符串:strtok()函数
<br /><br />函数strtok将字符串分解为一系列标记(token)标记就是一系列用分隔符(delimiting chracter,通常是空格或标点符号)分开的字符。例如,在一行文本中,每个单词可以作为标记,空格是分隔符。<br /> 需要多次调用strtok才能将字符串分解为标记(假设字符串中包含多个标记)。第一次调用strtok包含两个参数,即要标记化的字符串和包含用来分隔标记的字符的字符串(即分隔符):在图5.33的例子中,下列语句:<br /> tokenPtr = Strto转载 2010-11-03 23:26:00 · 5300 阅读 · 0 评论 -
getch(),getche(),getchar()的区别
getchar()和getch()的问题一直困扰着大家,关于他们的区别也是众说纷纭,可没有一种说法是详细、深入的,今天我就在前人已有的成果上,试着与大家继续探讨下这个问题: 先看看规范点的说法: getchar This is a standard function that gets a character from the stdin. getch This is a nonstandard function that gets a character from k转载 2010-11-01 23:47:00 · 713 阅读 · 0 评论