随笔分类 -  C/C++

也谈数组a与&a
摘要:今天做了一个题目:[代码]大家可以试下,看下答案是否和自己想的一样。这题的关键是理解a和&a的区别。a是指向int类型的常量指针。&a则是指向int [5]的一个指针。相当于int (*p)[5] = &a;如果你想这样定义的话int *p = &a;这时VC编译器会提示一个WARNING:'int *' differs in levels of indirecti... 阅读全文

posted @ 2010-05-09 22:57 寂寞的肥肉 阅读(371) 评论(0) 推荐(0)

fatal error C1071: unexpected end of file found in comment(Mark ZZ)
摘要:今天在一论坛上看到一人发帖:『最近遇到一个奇怪的问题,代码中的中文注释能使程序出错!!!试看如下的代码:int main() {int a = 0;int b = 0;/**停车来源字*/——————应改为“/*(空格,也可不空)*停车来源字(空格)*/”a = 10;b = 20;/**注释结束*/&... 阅读全文

posted @ 2010-04-14 21:44 寂寞的肥肉 阅读(8686) 评论(1) 推荐(0)

VC++工程如何脱离VSS环境(Mark ZZ)
摘要:1)去掉整个文件夹的只读属性 2)删除所有目录(包括子目录)中的vssver.scc和mssccprj.scc两个文件 3)手动编辑所有的dsp文件(比如用记事本),找到并删除类似下面两行的内容: # PROP Scc_ProjName ""$/MyDemo/src", CEBBAAAA" # PROP Scc_LocalPath ".." 4)手动编辑所有的dsw文件(比如用记事本),找到并删除... 阅读全文

posted @ 2010-04-10 13:47 寂寞的肥肉 阅读(526) 评论(0) 推荐(0)

VC编译器产生的文件简介(Mark ZZ)
摘要:.CLW 文件是VC Class Wizard信息文件。存放了Class Wizard的信息。ClassWizard生成的用来存放类信息的文件。classwizard信息文件,ini文件的格式。.NCB 文件是分析器信息文件,是由系统自动产生的。是“No Compile Browser”的缩写,其中存放了供ClassView、WizardBar和Component Gall... 阅读全文

posted @ 2010-04-08 22:22 寂寞的肥肉 阅读(571) 评论(0) 推荐(0)

C语言字符串初探
摘要:C语言是没有字符串类型的,一般通过字符指针或者字符数组进行操作。指针和数组的差别这里就不讲了。  首先说明下程序中变量在内存中的分布。  全局变量存储在数据段中,局部变量存储在堆栈中,利用malloc动态分配的变量存储在堆中。堆栈和堆的区别请google.  下面根据一个具体的程序来看。代码Code highlighting produced by Actipro CodeHighlighter ... 阅读全文

posted @ 2010-02-25 13:59 寂寞的肥肉 阅读(1604) 评论(12) 推荐(0)

函数调用约定解析(转)
摘要:前言: 文章讲述了几种主要程序语言中的函数调用约定;详细说明时主要以VC6中的函数调用约定为主,阐释方式主要是以C++程序编译后得到的汇编代码来进行说明; 我所使用的编译器和平台:WindowsXP + 赛扬1G + VC6(主要工具)\Delphi6\C++Builder6; 一:函数调用约定; 函数调用约定是函数调用者和被调用的函数体之间关于参数传递、返回值传递、堆栈清除、寄存器使用的一种约... 阅读全文

posted @ 2009-12-31 15:19 寂寞的肥肉 阅读(366) 评论(0) 推荐(0)

C++字符串完全指引之二 —— 字符串封装类(转)
摘要:C++字符串完全指引之二 —— 字符串封装类原著:Michael Dunn作者:Chengjie Sun原文出处:CodeProject:The Complete Guide to C++ Strings, Part II 引言  因为C语言风格的字符串容易出错且不易管理,黑客们甚至利用可能存在的缓冲区溢出bug把C语言风格的字符串作为攻击目标,所以出现了很多字符串封装类。... 阅读全文

posted @ 2009-12-21 22:22 寂寞的肥肉 阅读(1053) 评论(0) 推荐(0)

C++字符串完全指引之一 —— Win32 字符编码(转)
摘要:C++字符串完全指引之一 —— Win32 字符编码原著:Michael Dunn翻译:Chengjie Sun原文出处:CodeProject:The Complete Guide to C++ Strings, Part I 引言  毫无疑问,我们都看到过像 TCHAR, std::string, BSTR 等各种各样的字符串类型,还有那些以 _tcs 开头的奇怪的宏。... 阅读全文

posted @ 2009-12-21 22:18 寂寞的肥肉 阅读(487) 评论(0) 推荐(0)

一些VC的快捷键以及调试方法技巧
摘要:1.检测程序中的括号是否匹配把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号<>)前面,键入快捷键“Ctrl+]”。如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告声。2.查看一个宏(或变量、函数)的宏定义把光标移动到你想知道的一个宏上,就比如说最常见的DECLARE_MAP_MESSAGE上按一下F... 阅读全文

posted @ 2009-12-09 11:16 寂寞的肥肉 阅读(526) 评论(0) 推荐(0)

C语言中的getchar和putchar详解
摘要:首先给出《The_C_Programming_Language》这本书中的例子:#include <stdio.h>int main(){int c;c = getchar();while (c != EOF){putchar();c= getchar(); }return 0;}这里主要解释下为什么要用int型来接受getchar函数。很多时候,我们会写这样的两行代码:char c;... 阅读全文

posted @ 2009-11-19 22:48 寂寞的肥肉 阅读(24851) 评论(0) 推荐(2)

指针数组探讨
摘要:首先来看普通的数组: int a[2] = {1,2};这是强调下a是数组的地址,即a = =&a[0];下面来看指针数组char *p[2];char *p1="aaa";char *p2="bbb";char *tmp;p[0] = p1;p[1] = p2;这里p是数组名,所以p是整个数组的地址,即p = &p[0];p+1 = &p[1];大家可能经常看到tmp =... 阅读全文

posted @ 2009-11-12 19:45 寂寞的肥肉 阅读(1537) 评论(10) 推荐(2)

深入int getc(FILE *fp),putc(int c, FILE *fp),int getchar(void),int putchar(int c)
摘要:这几个其实都不是函数,仅仅是在stdio.h头文件中定义的宏#define getc(_stream) (--(_stream)->_cnt >= 0 \? 0xff & *(_stream)->_ptr++ : _filbuf(_stream))#define putc(_c,_stream) (--(_stream)->_cnt >= 0 \? 0xff ... 阅读全文

posted @ 2009-11-12 19:44 寂寞的肥肉 阅读(1562) 评论(0) 推荐(0)

C语言中char *s 和char s[]之间的区别
摘要:很多人觉得这两个定义效果一样,其实差别很大。以下是个人的一些看法,有不正确的地方望指正。本质上来说,char *s定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大,所以:当char *s = "hello";后,不能使用s[0]='a';语句进行赋值。这是将提示内存不能为"written"。当用char s[]="hello";后,完全可以使用s[0]='a';进行... 阅读全文

posted @ 2009-11-11 20:03 寂寞的肥肉 阅读(16510) 评论(0) 推荐(2)

求1-n之间所有不重复的可能的值的和等于m的组合
摘要:求1-n之间所有不重复的可能的值的和等于m的所有组合思路:采用二叉树结构,根节点为岗哨,无实际意义,从根节点开始,其左孩子节点表示选中1,有孩子节点表示不选中1,以此类推。从根节点开始遍历,若此节点的sum< M,则递归调用此节点,若sum>M,则return,若sum=M,则回溯所有的节点。具体代码如下:#include <stdio.h>#include <mal... 阅读全文

posted @ 2009-11-10 23:52 寂寞的肥肉 阅读(563) 评论(1) 推荐(0)

#define用法ZZ
摘要:1.简单的define定义#define MAXTIME 1000一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写if(i<MAXTIME){.........}编译器在处理这个代码之前会对MAXTIME进行处理替换为1000。这样的定义看起来类似于普通的常量定义CONST,但也有着不同,因为define的定义更像是简单的文本替换,而不是作为一个量来使用,这个问题在下面反... 阅读全文

posted @ 2009-11-07 21:43 寂寞的肥肉 阅读(276) 评论(0) 推荐(0)

C语言实现快速排序
摘要:快速排序简介:即是一个递归的过程,比如对数组a[5] = {1,3,4,5,2}排序。首先找到一个指标元素,这里取(0+5)/2 = 2即中间的元素a[2];然后根据a[2]=4排序;比4小的放到左面,比4大的放到右边。a[5] = {1,3,2,4,5};然后分别对数组{1,3,2}和数组{5}进行同样的排序。递归到没法分割为止。C代码如下:#include <stdio.h>#de... 阅读全文

posted @ 2009-11-07 20:48 寂寞的肥肉 阅读(3789) 评论(0) 推荐(1)

GCC编译多个C文件
摘要:下午做了一个小的程序,定义了三个文件:getop.h,getop.c,calcDemo.c显然getop.h是针对getop.c的,而在calcDemo.c中要调用到getop.c中的东西。首先给出每个文件的结构图,为了更简单的说明,函数都空实现。getop.h:#ifndef _H_GETOP#define _H_GETOPint getch(void);void ungetch(int c);... 阅读全文

posted @ 2009-11-07 19:38 寂寞的肥肉 阅读(34107) 评论(0) 推荐(1)

导航