C C++
Aaron-Liu
老老实实做人,踏踏实实做事。
展开
-
C程序中图片调用技巧
C程序中图片调用技巧 摘要:介绍如何在C程序中调用图片,这将有助于加强C程序的界面的美观性. 关键词: VGA 、BMP、13h.h、TIMER.H、Logo。 一、问题的引入: C语言使用愈来愈普及,愈来愈深层次。Turbo C提供了更强的图形函数库,它支持微机CGA﹑EGA﹑VGA等多种图形适配器的各种图形模式,提供了绘制各种图形﹑输出各种字体的图形库函数,并具有丰富的对图形进行着色原创 2013-03-11 22:02:27 · 4184 阅读 · 0 评论 -
20230311博客搬家过来的文章不一定是原创
在2013.03.11从网易搬家过来的文章会自动打上“原创”的标签。但不一定是原创。引用的文章,在文章内都有相关链接。原创 2013-03-11 22:11:49 · 594 阅读 · 0 评论 -
指针函数和函数指针的区别
1,这两个概念都是简称,指针函数是指带指针的函数,即本质是一个函数。我们知道函数都又有返回类型(如果不返回值,则为无值型),只不过指针函数返回类型是某一类型的指针。 其定义格式如下所示: 返回类型标识符 *返回名称(形式参数表) { 函数体 } 返回类型可以是任何基本类型和复合类型。返回指针的函数的用途十分广泛。事实上,每一个函数,即使它不带有返回某种类型的指针,它本身都有一个入口地址,该原创 2013-03-11 22:02:33 · 437 阅读 · 0 评论 -
友元函数和友元类
采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销),但它破坏了类的封装性和原创 2013-03-11 22:04:41 · 493 阅读 · 0 评论 -
堆/栈/动态存储方式/静态存储方式
动态存储方式所谓动态存储方式是指在程序运行期间根据需要进行动态的分配存储空间的方式。动态存储变量是在程序执行过程中,使用它时才分配存储单元, 使用完毕立即释放。 典型的例子是函数的形式参数,在函数定义时并不给形参分配存储单元,只是在函数被调用时,才予以分配, 调用函数完毕立即释放。如果一个函数被多次调用,则反复地分配、 释放形参变量的存储单元。静态存储方式所谓静态存储方式是指在程序编译期间分配固定原创 2013-03-11 22:04:50 · 746 阅读 · 0 评论 -
云里雾里的sizeof(结构体)
#include struct{ long a; char b; short c; char d;}y;struct{ long a; short b; char d; int c;}yy;struct{ long a; short b;原创 2013-03-11 22:02:31 · 525 阅读 · 0 评论 -
指针的几点注意点
1、*p若出现在变量定义语句中,表示定义指针p;若出现在表达式中,则表示取p所指对象的内容。2、指针变量智能接收、存储与基类型相容的变量地址,所以不能对指针变量赋非地址值或与基类型不相容变量的地址。int i=100, j,*ip;float x,*xp;ip=i; //error:指针变量赋非地址值xp=&j; //error:j的类型与xp所指对象的类型不符。3、只能对指针变量赋变量原创 2013-03-11 22:02:40 · 580 阅读 · 0 评论 -
工厂模式(c++描述)
简单工厂模式符合面向对象4大原则:可维护,可复用,可扩展,灵活性高,耦合度低,但是他仍然有一个很大的问题就是如果要增加新的产品,必须对工厂进行修改,这就违背了软件设计的开闭原则 。 对于这种问题,我们可以使用工厂模式来解决。 假设我们想要增加一个新的运算乘方运算类,我们可以按如下思想来设计: 设计基于运算基类的乘方类,这和简单工厂模式相同,但在设计工厂的时候,我们把他的加工产品的方式分类原创 2013-03-11 22:04:44 · 601 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类原创 2013-03-11 22:04:48 · 435 阅读 · 0 评论 -
C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。 一、面向过程设计中的static 全局变量、局部变量、静态全局变量、静态局部变量的区别 C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件原创 2013-03-11 22:04:52 · 689 阅读 · 0 评论 -
C中的预编译宏定义
在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理. C初学者可能对预处理器没什么概念, 这是情有可原的: 一般的C编译器都将预处理, 汇编, 编译, 连接过程集成到一起了. 编译预处理往往在后台运行. 在有的C编译器中, 这些过程统统由原创 2013-03-11 22:05:11 · 619 阅读 · 0 评论 -
面试中经常出现的算法
二分查找的代码.int bfind(int* a,int len,int val){ int m = len/2; int l = 0; int r = len; while(l!=m && r!= m) { if(a[m] > val) { r = m; m = (m+l)/2;原创 2013-03-11 22:04:54 · 535 阅读 · 0 评论 -
C和C++混编,c调用C++,c++调用C
摘抄一: 1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变 量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”), 因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与原创 2013-03-11 22:04:23 · 540 阅读 · 0 评论 -
函数指针与指针函数辨析
函数指针和整型指针比较一下,整型指针是指向整型变量的指针,同理,函数指针是指向函数类型的指针! 指针函数和整型函数比较,整型函数是返回整型值的函数,同理,指针函数是返回指针的函数!举例: 函数指针:int (*p)();声明了一个指针p,该指针指向返回值是整型(即函数类型为整型)的函数! 指针函数:int *p(int a,float b);该函数返回指向整型变量的指针!即该函数的原创 2013-03-11 22:02:59 · 531 阅读 · 0 评论 -
C C++可变参数学习笔记
前言: 本文在很大程度上改编自网友kevintz的“C语言中可变参数的用法”一文,在行文之前先向这位前辈表示真诚的敬意和感谢。 本人转自:http://topic.csdn.net/t/20041124/09/3582660.html一、什么是可变参数 我们在C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: int printf(原创 2013-03-11 22:04:25 · 566 阅读 · 0 评论 -
标准库STL中的map和set
摘要:本文列出几个基本的STL map和STL set的问题,通过解答这些问题讲解了STL关联容器内部的数据结构,最后提出了关于UNIX/LINUX自带平衡二叉树库函数和map, set选择问题,并分析了map, set的优势之处。对于希望深入学习STL和希望了解STL map等关联容器底层数据结构的朋友来说,有一定的参考价值。STL map和set的使用虽不复杂,但也有一些不易理解的地方,如:为原创 2013-03-11 22:04:46 · 854 阅读 · 0 评论 -
理解C++ dynamic_cast
在面向对象程序设计中,有时我们需要在运行时查询一个对象是否能作为某种多态类型使用。与Java的instanceof,以及C#的as、is运算符类似,C++提供了dynamic_cast函数用于动态转型。相比C风格的强制类型转换和C++ reinterpret_cast,dynamic_cast提供了类型安全检查,是一种基于能力查询(Capability Query)的转换,所以在多态类型间进行转换原创 2013-03-11 22:05:00 · 538 阅读 · 0 评论 -
typedef的使用总结(转)
用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量; 以下则可行: typedef char* PCHAR; // 一般用大写 PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针 虽然: ch原创 2013-03-11 22:02:21 · 430 阅读 · 0 评论 -
C++的static有两种用法
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。 一、面向过程设计中的static 1、静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1 #include原创 2013-03-11 22:02:35 · 609 阅读 · 0 评论 -
#undef 用法
#undef在百度知道里解释的不是很清楚,故在此总结如下:#define TEST_A 1 #define TEST_CLASS_A clase T1 #include "TEST.h" 在该范围内TEST_CLASS_A被替换为clase T1#undef TEST_A #undef TEST_CLASS_A #define TEST_A 2 #define TEST_CLASS_A c原创 2013-03-11 22:02:38 · 1551 阅读 · 0 评论 -
c c++ 栈
#include "stdio.h"#include "stdlib.h"#include "malloc.h"#define STACK_INIT_SIZE 100;#define STACKINCREMENT 10;#define OK 1typedef struct Stack{int *base;int *top;int stacksize;//int data[stacksize];}S原创 2013-03-11 22:02:46 · 616 阅读 · 0 评论 -
程序的内存分配
程序的内存分配(堆和栈区别)一、预备知识 程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack) 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵原创 2013-03-11 22:02:50 · 487 阅读 · 0 评论 -
C语言高效编程的几招
引言: 编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。第1招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招——以空间换时间。例如:字符串的赋值。方法A,通常的办法:#define LEN 32char string1 [LEN];me原创 2013-03-11 22:04:05 · 541 阅读 · 0 评论 -
C/C++程序员应聘常见面试试题剖析(超级详细解析)
1.引言 本文的写作目的并不在于提供c/c++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。 许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的strcpy很原创 2013-03-11 22:05:15 · 742 阅读 · 0 评论