- 博客(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
转载 指针类型转换(非常棒非常全的一篇文章)
<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关注的人