自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 关于全局变量、静态全局变量、静态局部变量的区别与联系

<br />简单的说用法: <br />几个C文件都用到,   则全局 <br />只本C文件用到,且好几个函数用到,   则静态(所谓全局静态) <br />只本函数用到,   而又不想在函数退出时被释放掉(所谓值还保留着),   则局部静态 <br /> <br /> <br />我的理解:<br />上面三种变量都保存在全局(静态)区,所以在程序执行的过程中,它是一只存在的。区别就是对作用域范围的限定。全局的都能用到,全局静态的被限制在本文件内,局部静态的被限制在本函数内。

2010-10-22 23:26:00 679

原创 取内存地址为0x10000的内容(程序)

<br />#include <stdio.h>int main(int argc, char *argv[]){ char *p = (char *)0x10000; printf("%d/n",*p);}<br />一定要用强制类型转换,否则会出错。

2010-10-20 23:06:00 1381

原创 求素数

<br />#include <stdio.h>#include <math.h>int isPrime(int n){ int i; for(i=2; i<=sqrt((double)n); i++) if(n%i==0) return 1; return 0;}int main(int argc, char *argv[]){ int i,j; for(i=2;i<100;i++){ j = isPri

2010-10-20 16:19:00 524

原创 原码、反码、补码的进一步理解

<br />原码:<br />人类数字二进制表示。<br /> <br />反码:<br />原码到补码的过度,没有任何作用。<br /> <br /><br />补码:<br />计算机内部数字表示。<br />计算机用补码表示的原因:<br />        1、可以将符号位与其他位统一处理;<br />        2、减法可以按加法处理。<br />注:<br />        1、补码相加,如果最高位(符号位)有进位,则进位被舍弃;<br />        2、补码、原码转换过程相同(除符

2010-10-20 16:05:00 804 1

转载 构造函数为什么不能是虚的,而析构函数为什么某些情况下必须是虚的

构造函数不能是虚函数,而析构函数在某些情况下必须为虚函数(比如你想让你类能够被继承,那么这个类的析构函数最好是虚的,<br />继承一个析构函数不是虚的类是有风险的),值得补充的是,当基类的函数是虚函数,子类的重载的函数也是虚的,及时不加virtual<br />关键字也是虚的。

2010-10-20 14:26:00 645

转载 C++ 中的 protected(转)

http://blog.codingnow.com/2010/03/cpp_protected.html

2010-10-20 14:23:00 606

转载 指针类型转换(非常棒非常全的一篇文章)

<br />原文地址:http://hi.baidu.com/sunkanghome/blog/item/3cae5e0379d8417e3912bbfa.html<br /> <br /> <br />1、强制类型转换<br />看一下这个c代码:<br />int a = 0x123456;     //0x是十六进制的表示法<br />char c = (char)a;<br />printf("%x/n", c);<br />在我的编译环境里输出的是什么呢? 是56,怎么得来的呢?<br

2010-10-20 11:16:00 2861 1

转载 用引用返回值(好文)

<br />http://blog.csdn.net/tcdddd/archive/2010/04/23/5519332.aspx

2010-10-19 10:26:00 652

原创 对于字符串"121134sKDGU554",求原字符串的数字个数。并将重复字母去掉,输出新的字符串。

#include <stdio.h>#include <string.h>int main(int argc, char *argv[]){ char str[] = "121134sKDGU554"; int i, j, k, L = strlen(str), count = 0; for(i=0; i<L;i++){ if(str[i]>='0' && str[i]<='9'){

2010-10-14 13:22:00 954

原创 ftell函数的使用

<br />功 能: 返回当前文件指针<br /> <br />调用示例:<br />ftell(fp);利用函数 ftell() 也能方便地知道一个文件的长。如以下语句序列: fseek(fp, 0L,SEEK_END);len =ftell(fp);首先将文件的当前位置移到文件的末尾,然后调用函数ftell()获得当前位置相对于文件首的位移,该位移值等于文件所含字节数。

2010-10-14 11:13:00 2187

原创 对于拷贝构造函数中参数是引用的理解

<br />1、如果用传值的方法的话,因为形参需要拷贝一份实参,内存占用的空间大了;<br />2、如果使用指针,不是很安全;<br />3、所以,使用引用的话,它能达到指针的功能,因为是别名,可以直接使用内存中的实参,但是还不用重新复制一份。

2010-10-14 11:08:00 753

原创 关于switch语句的进一步理解

<br />程序1:<br />int main(){ char s[] = "1234111234"; int v1=0,v2=0,v3=0,v4=0; int i; for(i=0;i<strlen(s);i++){ switch(s[i]){ default:v4++; case '1':v1++; case '2':v2++; case '3':v3++; } } printf("v1=%d, v2=%d, v3=%d, v4=%d/n

2010-10-14 10:40:00 743

原创 拷贝构造函数使用const的原因

<br />拷贝构造函数之所以使用const,使为了防止在复制对象的时候,拷贝构造函数内部万一写错了,改变了原来的对象。使用const关键字,就保证了原对象不改变。

2010-10-14 10:09:00 1590

原创 对const关键字的理解

<br />1、const int Max = 10;<br />定义const常量,比宏定义好的地方就是可以进行类型检查。<br /> <br />2、void fun(cont int i)       //只能使用i,不能修改i的值。<br />对于const作为函数参数的情况,如果函数体中修改了i的值,就报错了。如下所示:<br />void fun(const int i){ i = 10;}<br /> <br />3、为函数重载提供了参考:<br />class A 

2010-10-14 10:05:00 655

原创 使用拷贝构造函数与使用重载的“=”重载函数的区别

<br />拷贝构造函数是将一个对象的内容完全复制给另一个对象;而使用重载=的话,很可能类中有指针,这样的话,只能将栈中的内容复制过去,堆中的内容不能复制过去,这样的话,对象之间有联系,删除一个对象会出现问题。<br /> <br /> <br />在C++中,下面三种对象需要拷贝的情况。因此,拷贝构造函数将会被调用。  <br />1). 一个对象以值传递的方式传入函数体  <br />2). 一个对象以值传递的方式从函数返回  <br />3). 一个对象需要通过另外一个对象进行初始化 <b

2010-10-14 09:51:00 1156

原创 关于QPushButton构造函数的重载

对于设置一个按钮,我们用<br />QPushButton button("quit", 0);<br /><br />一开始我与QPushButton的第一个构造函数的参数对照,觉得不对,后来才发现,QPushButton不只一个构造函数,我上面的这个定义符合了它的第二个构造函数。QPushButton的所有构造函数如下:<br />QPushButton::QPushButton ( QWidget * parent, const char * name = 0 )<br />构造一个没

2010-10-13 11:51:00 3212 1

原创 QPushButton类与QButton类的区别

<br />QButton是抽象类,不能实例化,里面包括虚函数,如果用new实例化,会出现编译错误。如果要创建按钮的话,用QPushButton。

2010-10-13 10:43:00 1250

转载 C++语言特性中的性能分析

<br />转自http://book.51cto.com/art/201006/203560.htm<br />这是一本关于C++性能优化的书,比较不错,叫《C++应用程序性能优化》(第2版)<br /> <br />C++语言特性中的性能分析<br />大多数开发人员通常都有这个观点,即汇编语言和C语言适合用来编写对性能要求非常高的程序。而C++语言的主要应用范围是编写复杂度非常高,但是对性能要求不是那么严格的程序。因为在大多数人看来,C++语言相对前面两种语言来说,设计时因为考虑到要支持多种编程模

2010-10-13 09:45:00 741

原创 sizeof问题

<br />#include <iostream>int main(int argc, char *argv[]){ char str[] = "game"; std::cout<<sizeof(str)<<":"; char *p = str; std::cout<<sizeof(p)<<":"; char i = 10; std::cout<<sizeof(i)<<":"; void *pp = malloc(10); std::cout<<sizeof(pp

2010-10-12 23:27:00 513

原创 '/0'的ASCII码

<br />#include<iostream> using namespace std; void main() { char c = '/0'; cout<<(int)c<<endl;} <br /> <br />输出结果为:<br />0<br /> <br />说明'/0'的ASCII码为0。

2010-10-12 23:25:00 2975

转载 什么是多态?为什么用多态?有什么好处?

<br />http://hi.baidu.com/python811022/blog/item/613a7b8d4369b116b31bba39.html<br /> <br />,多态可以分为变量的多态,方法的多态,类的多态.我这里强调的是类的多态,这是我们在以后的工作中经常回用到的<br /><br />首先,有这样一个系统:有个学生工作从达内毕业了,作的还不错.买了辆捷达汽车.这个系统应该如何设计呢?<br />按照OO的思想,我们会抽象出来一个类,表示捷达汽车,其中有个run()方法<br

2010-10-12 11:12:00 1099

原创 类的大小问题

#include using namespace std;class A{};class B{ char array[0];};class C{ char array[1];};class D{ char array[2];};int main(int argc, char *argv[]){ A a; B b; C c; D d; cout运行结果:1012

2010-10-12 10:42:00 494

原创 uniq命令

<br />要删除名为 fruit 文件中的重复行并将其保存到一个名为 newfruit 的文件中,输入:  uniq fruit newfruit  如果 fruit 文件包含下列行:  apples  apples  peaches  pears  bananas  cherries  cherries  则在您运行uniq 命令后 newfruit 文件将包含下列行:  apples  peaches  pears  bananas  che

2010-10-12 10:32:00 920

原创 求32位机器上unsigned int的最大值及int的最大值

#include int main(int argc, char *argv[]){ unsigned int max_int = (1编译后:int_sizeof1.c: 在函数‘main’中:int_sizeof1.c:5: 警告:整数溢出运行后:The max value of int on 32 machine: 2147483647

2010-10-12 10:09:00 40335

原创 不用sizeof来求出int的大小(程序)

<br />#include <stdio.h>int main(int argc, char *argv[]){ int a[2]; unsigned int add1 = &a[0]; unsigned int add2 = &a[1]; printf("The address of a[0] is %u/n",add1); printf("The address of a[1] is %u/n",add2); printf("The size of int is %u/

2010-10-12 09:57:00 1370

原创 linux下文本编辑命令

<br />vi(vim)<br />cat               合并文本输出<br />more<br />less<br />gedit           图形化文本编辑<br /> <br /> more命令功能:让画面在显示满一页时暂停,此时可按空格健继续显示下一个画面,或按Q键停止显示。<br />less命令功能:less命令的用法与more命令类似,也可以用来浏览超过一页的文件。所不同的是less命令<br />除了可以按空格键向下显示文件外,还可以利用上下键来卷动文件。当要

2010-10-12 09:46:00 754

原创 ls 命令的输出

<br />drwxrwxr-x.                  2             zjt                                 zjt                         4096                                8月 31 17:01                      project<br />目录  权限                 链接数      文件拥有者            文件所属的组  

2010-10-12 09:38:00 745

原创 常量指针与指针常量

我只见过int const * m, const int * n和int * const p的区别,那里前两者是等价的,表示m、n是指向i的指针,*m,*n是不能改变的,但是m,n本身都可以改变;第三个是说p指向的东西不能变,也就是p不能变了。

2010-10-12 09:06:00 729

转载 静态成员函数

静态成员函数是类的成员函数,该函数不属于该类申请的任何一个对象,而是所有该类成员共同共有的一个函数。 举个例子给你,你们班里面有10个人(10个比如高一一班的对象),体育老师分给你们一个篮球(静态成员函数),你们每个人都带了一个篮球(非静态成员函数),你们都很小气,自己的球只能自己拍,要是5对5打比赛,那就只能用那个静态的篮球了(每个人都可以拿来用,但是带来的影响是对全体的)。因此,我可以说那个篮球是高一一班的成员。所以也就是说:静态成员函数是类的成员函数(因为高一二班就不能拿来玩),但是这

2010-10-09 16:59:00 13435 3

转载 google2011选择题

<br />今天晚上Google的2011年校园招聘宣讲会分别在北大和清华举行,其中北大本来是350<br />人的会场,去了大约600多人,爆满,那场面绝对是人山人海,彩旗飘飘。经过了大约<br />一个小时多的宣讲和问答,开始现场笔试环节,一共10个选择题和三个算法题,只有选<br />择题答对了6个以上的人才有机会让面试官看你后面的算法题。然后明天下午会通知笔<br />试通过的人进行面试,Google的效率就像其搜索引擎一样迅速,效率可见一般。<br /><br />其中前10个

2010-10-09 16:49:00 810

原创 新建UI时QWidget QMainWindow QDialog的选择

<br />QMainWindow QDialog是QWidget的子类。<br />QMainWindow有菜单、工具栏、浮动/停靠窗口等。

2010-10-09 11:21:00 1603

空空如也

空空如也

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

TA关注的人

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