C语言学习
文章平均质量分 73
lifengguo_njupt
这个作者很懒,什么都没留下…
展开
-
typedef和#define的区别
typedef和#define的区别 使用宏定义的重命名常量的好处:程序易读性强;便于维护和修改; 1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:#define PI 3.1415926 程序中的:area=PI*r*r 会替换为3.14转载 2012-09-05 08:41:23 · 350 阅读 · 0 评论 -
用一个宏定义FIND求一个结构体struct里某个变量相对struc的编移量
用一个宏定义FIND求一个结构体struct里某个变量相对struc的编移量.如:stuct student { int a; char b[20]; double ccc; } 则: FIND(student,a); //等于0 FIND(student,b);//等于4#define FIND( struc, e ) (size_t)&(转载 2012-09-05 09:20:07 · 971 阅读 · 0 评论 -
C/C++中static的作用
static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).(1)局部静态变量 (2)外部静态变量/函数 (3)静态数据成员/成员函数 下面就这三种使用方式及注意事项分别说明 一、局部静态变量 在C/C++中, 局部变转载 2012-09-11 16:54:55 · 1025 阅读 · 0 评论 -
malloc/free与new/delete的区别
相同点:都可用于申请动态内存和释放内存不同点:(1)操作对象有所不同。malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对象消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不转载 2012-09-14 10:47:37 · 296 阅读 · 0 评论 -
strcut和class的区别
C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。struct能包含成员函数吗? 能!struct能继承吗? 能!!struct能实现多态吗? 能!!! 既然这些它都能实现,那它和class还能有什么区别?最本质的一个区别就是默认的访问控制: 默认的继承访问权限struct是public的,cl翻译 2012-09-18 09:42:14 · 693 阅读 · 0 评论 -
C++虚函数和纯虚函数的区别
C++虚函数和纯虚函数的区别1.虚函数和纯虚函数可以定义在同一个类中,含有纯虚函数的类被称为抽象类,而只含有虚函数的类不能被称为抽象类。2.虚函数可以被直接使用,也可以被子类重载以后,以多态的形式调用,而纯虚函数必须在子类中实现该函数才可以使用,因为纯虚函数在基类有声明而没有定义。3.虚函数和纯虚函数都可以在子类中被重载,以多态的形式被调用。4.虚函数和纯虚函数通常存在转载 2012-09-18 09:45:09 · 789 阅读 · 0 评论 -
strcpy 和memcpy有什么不同
strcpy 和memcpy有什么不同strcpy()函数只能拷贝字符串。strcpy()函数将源字符串的每个字节拷贝到目的字符串中。当遇到字符串末尾的NULL字符('\0')时,它会结束拷贝,并在目的字符串后面自动加上'\0'memcpy()函数可以拷贝任意类型的数据。因为并不是所有的数据都已NULL字符结束,所以要为memcpy()函数指定要拷贝的字节数。自拷贝字符串时,通原创 2012-09-18 16:11:14 · 643 阅读 · 0 评论 -
const常量和#define宏常量的区别
C++可以用const定义常量,也可以使用#define来定义常量,但是前者比后者有更多的优点:1,const常量有数据类型,而宏常量没有数据类型,编译器可以对前者进行静态类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能产生意想不到的错误(边际效应)2,有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。 所以在C++中应尽量使用原创 2012-09-18 16:38:35 · 3476 阅读 · 0 评论 -
求两个有序数组的中位数
在叙述问题之前,重新叙说一下分治策略的思想:将一个难以直接解决的大问题,分割成一些规模较小的相同的问题,以便各个击破,分而治之。 中位数问题:设X[0:n-1]和Y[0:n-1]为两个数组,每个数组中含有N个 已经排好序的数。试设计一个O(logn)时间算法,找出X和Y的2N个数的中位数。 解决问题的核心:找出将大问题分割成较小规模的相同问题的切割点,并递归定义转载 2012-09-21 10:05:35 · 973 阅读 · 0 评论