文章分类 -  C , C++

C语言,动态分配二维字符串数组
摘要:#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 2 /*根据字符串的长度排序,由长到短*/void sort(char *p[N]);void main() {#if 0 char str[N][50];/*保存字符串的二维数组,每个字符串的最大长度是50*/ int i; char *p[N];/*声明指针数组,保存二维数组每一行的地址*/ printf("请输入%d个字符串:\n",N) ; #else int i; char *p[N];/*声明指针 阅读全文

posted @ 2012-08-25 23:18 不知道 阅读(14057) 评论(0) 推荐(0)

C语言发送电子邮件
摘要:发送邮件需要使用SMTP协议,具体可以参考《RFC821 简单邮件传输协议》,感兴趣自己找来看看,这里仅以向邮箱里发送本地IP地址为例,说说其具体操作过程。 SMTP协议的每一条指令都以"\r\n"作为结束标志,所以必须在每一条要发送的指令后加上"\r\n"。 首先是获得本地的IP地址,我在这里也具体说说。要获得本地地址信息,要用到两个函数,【gethostname】和【gethostbyname】,前者获得本机的名称,是个字符串,后者根据其获得本机的地址信息,返回值是一个指向hostent结构的指针,这个结构体具体定义如下(见MSDN):struct 阅读全文

posted @ 2012-05-02 21:31 不知道 阅读(3372) 评论(0) 推荐(0)

多态
摘要:多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4 编程技术内幕”)。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态性在Object Pascal和C++中都是通过虚函数(Virtual Function) 实现的。概念 多态指同一个实体同时具有多种形式。它是面向对象程序设计(OOD)的一个重要特征。如. 阅读全文

posted @ 2012-04-23 14:05 不知道 阅读(230) 评论(0) 推荐(0)

const的用法(很好)
摘要:const的用法,特别是用在函数后面在普通的非 const 成员函数中,this 的类型是一个指向类类型的 const 指针(第 4.2.5 节)。可以改变 this 所指向的值,但不能改变 this 所保存的地址。在 const 成员函数中,this 的类型是一个指向 const 类类型对象的 const 指针。既不能改变 this 所指向的对象,也不能改变 this 所保存的地址。[U1]关键字:Const,Const函数,Const变量,函数后面的Const看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么 阅读全文

posted @ 2012-01-31 09:15 不知道 阅读(285) 评论(0) 推荐(0)

VS2008
摘要:1. C语言的标准输入输出printf()和scanf()是要include头文件stdio.h的,但是在VS2008下也可以include csctdio的,如下 #include <cstdio> 阅读全文

posted @ 2012-01-30 16:29 不知道 阅读(207) 评论(0) 推荐(0)

C++成员类型
摘要:C++中的成员分为三种类型:公有成员,私有成员,保护成员。 如果不特别指定,类里所有的成员都是公有(Public)的,不用特地声明。但是私有(Private)成员则是要一定声明的。这三种类型才成员的区别在于,对于本类来说:公有成员,外部可以访问的成员。 私有成员,外部不可以访问的成员。 保护成员,外部不可以访问的成员。乍看起来,私有成员与保护成员的访问权限是相同的,使用私有成员就行了,貌似没有必要再多出来一个保护成员。 实际上,保护成员与私有成员的区别体现在继承上。继承分为:公有继承,私有继承,保护继承。 公有继承,基类的公有成员和保护成员作为派生类的公有成员,外部可以访问; 私有继承,基.. 阅读全文

posted @ 2012-01-30 15:24 不知道 阅读(1074) 评论(0) 推荐(0)

Error: a nonstatic member reference must be relative to a specific object
摘要:#include <iostream>#include <string>#include "order.h"#include "date.h"#include "room_list.h"#include "room_node.h"#include "room.h"#include "hotel.h"Order::Order(Date check_in, Date check_out,int owner_id,int order_id){//..}voi 阅读全文

posted @ 2012-01-18 17:34 不知道 阅读(3850) 评论(0) 推荐(0)

虚拟函数
摘要:#include "stdio.h"class A{ public: void print() { printf("%s","this is A\n"); }};class B:public A{ public: voidprint() { printf("%s","this is B\n"); }};int main(){ int i=1; A a; B b; a.print(); //输出this is A b.print(); //输出this is B A* point_a=&a 阅读全文

posted @ 2012-01-18 15:08 不知道 阅读(170) 评论(0) 推荐(0)

抽象类
摘要:简介 用 abstract 修饰的类是抽象类。 在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象。 凡是包含纯虚函数的类都是抽象类。 抽象类是不完整的,并且它只能用作基类。它与非抽象类的不同: 1、抽象类不能直接实例化,并且对抽象类使用 new 运算符是编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。 2、允许(但不要求)抽象类包含抽象成员。 3、抽象类不能被密封。 当从抽象类派生非抽象类时,这些非抽象类必须具体实现所继承的所有抽象成员,从而重写那些抽象成员。... 阅读全文

posted @ 2012-01-18 15:07 不知道 阅读(297) 评论(0) 推荐(0)

C语言字符串操作
摘要:字符串字面量(字符串常量,在C标准中称为,字符串字面量)如何存储字符串字面量 从本质上而言,C语言把字符串字面量作为字符数组来处理。当C语言编译器在程序中遇到长度为n的字符串字面量时,它会为字符串字面量分配长度为n+1的内存空间,在末尾增加一个额外的字符——空字符(\0)。字符串字面量的操作 通常情况下可以在任何C语言允许使用 char * 指针的地方使用字符串字面量。如:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->char*p;p =& 阅读全文

posted @ 2012-01-06 17:30 不知道 阅读(2517) 评论(1) 推荐(0)

内联函数
摘要:内联函数目录定义动机函数内联问题行情宏比较注意事项定义 内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是否能形成内联函数,需要看编译器对该函数定义的具体处理。动机 内联扩展是用来消除函数调用时的时间开销。它通常用于频繁执行的函数。 一个小内存空间的函数非常受益。 如果没有内联函数,编译器可以决定哪些函数内联 。 程序员很少或没有控制哪些职能是内联的,哪些不是。 给这种控制程度,作用是程序员可以选择内联的特定应用 。函数内联问题 除了 相关的问题, 内联扩展一般,语言功能作为一个内联... 阅读全文

posted @ 2011-09-14 13:03 不知道 阅读(634) 评论(0) 推荐(0)

浮点数内存表示形式
摘要:浮点数内存表示形式2010-10-25 14:53:18来源:网络评论:0 点击:392所有的C/C++编译器都是按照IEEE(国际电子电器工程师协会)制定的IEEE 浮点数表示法来进行运算的。这种结构是一种科学表示法,用符号(正或负)、指数和尾数来表示,底数被确定为2,也就是说是把一个浮点数表示为尾数乘以2的指数次所有的C/C++编译器都是按照IEEE(国际电子电器工程师协会)制定的IEEE 浮点数表示法来进行运算的。这种结构是一种科学表示法,用符号(正或负)、指数和尾数来表示,底数被确定为2,也就是说是把一个浮点数表示为尾数乘以2的指数次方再加上符号。下面来看一下具体的规格:我们以单精度浮 阅读全文

posted @ 2011-08-22 12:10 不知道 阅读(1297) 评论(0) 推荐(0)

浮点数内存表示方式
摘要:计算机内无论整数还是浮点数都是以二进制存储的。整数我就不说了。浮点数由三部分组成:符号位s,阶码e,尾数m。以下是转载的《IEEE754 学习总结》一:前言二:预备知识三:将浮点格式转换成十进制数四:将十进制数转换成浮点格式(real*4)附:IEEE754 Converte 1.0介绍一:前言 前不久在分析一个程序的过程中遇到了浮点运算,也就顺便学习了一下浮点数的存放格式(IEEE754标准),此文仅作为总结,其中举了几个典型的例子,如果你想深入了解IEEE754标准,我想本文并不太适合您。二:预备知识--------------------------------------------- 阅读全文

posted @ 2011-08-22 11:32 不知道 阅读(1926) 评论(0) 推荐(0)

结构体的sizeof
摘要:7. 结构体的sizeof 这是初学者问得最多的一个问题,所以这里有必要多费点笔墨。让我们先看一个结构体: struct S1 { char c; int i; }; 问sizeof(s1)等于多少聪明的你开始思考了,char占1个字节,int占4个字节,那么加起来就应该是5。是这样吗你在你机器上试过了吗也许你是对的,但很可能你是错的!VC6中按默认设置得到的结果为8。 Why为什么受伤的总是我 请不要沮丧,我们来好好琢磨一下sizeof的定义——sizeof的结果等于对象或者类型所占的内存字节数,好吧,那就让我们来看看S1的内存分配情况: S1 s1 = { 'a', 0.. 阅读全文

posted @ 2011-08-22 09:31 不知道 阅读(417) 评论(0) 推荐(0)

指针变量的sizeof
摘要:5. 指针变量的sizeof 学过数据结构的你应该知道指针是一个很重要的概念,它记录了另一个对象的地址。既然是来存放地址的,那么它当然等于计算机内部地址总线的宽度。所以在32位计算机中,一个指针变量的返回值必定是4(注意结果是以字节为单位),可以预计,在将来的64位系统中指针变量的sizeof结果为8。 char* pc = "abc"; int* pi; string* ps; char** ppc = &pc; void (*pf)();// 函数指针 sizeof( pc ); // 结果为4 sizeof( pi ); // 结果为4 sizeof( ps 阅读全文

posted @ 2011-08-22 09:19 不知道 阅读(1307) 评论(0) 推荐(0)

C 试题
摘要:1.求下面函数的返回值(微软)int func(x) { int countx = 0; while(x) { countx ++; x = x&(x-1); } return countx; } 假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的个数。2. 什么是“引用”?申明和使用“引用”要注意哪些问题?答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义 阅读全文

posted @ 2011-08-19 14:19 不知道 阅读(284) 评论(0) 推荐(0)

extern "C"
摘要:概述 extern "C" 包含双重含义,从字面上即可得到:首先,被它修饰的目标是“extern”的;其次,被它修饰的目标是“C”的。让我们来详细解读这两重含义。 (1) 被extern "C"限定的函数或变量是extern类型的 extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。记住,下列语句: extern int a; 仅仅是一个变量的声明,其并不是在定义变量a,并未为a分配内存空间。变量a在所有模块中作为一种全局变量只能被定义一次,否则会出现连接错误。 阅读全文

posted @ 2011-08-19 11:39 不知道 阅读(183) 评论(0) 推荐(0)

关于C语言中的引用的使用方法
摘要:水木社区 - Blog - 悠云蓝天http://foci.mysmth.netfoci 的Blog - 悠云蓝天业务联系方式:qq:23162174;msn:lihong.f@hotmail.com C/C++笔试、面试题目大汇总作者:foci发表时间:2007-11-17 22:45:11更新时间:2007-11-17 22:46:02浏览:1917次主题:电脑技术评论:0篇地址:220.231.0.* :::栏目:::生财有道笔试题软件工程版本控制管理____生活注意面weblogicjdbc&ODBC科技教育flashenglish操作系统&网络Web2.0net_er 阅读全文

posted @ 2011-08-19 09:44 不知道 阅读(34041) 评论(0) 推荐(3)

Volatile
摘要:Volatile(2008-06-16 17:19:25)转载标签:it分类:java 技术Volatile 比同步更简单,只适合于控制对基本变量(整数、布尔变量等)的单个实例的访问。当一个变量被声明成 volatile,任何对该变量的写操作都会绕过高速缓存,直接写入主内存,而任何对该变量的读取也都绕过高速缓存,直接取自主内存。这表示所有线程在任何时候看到的 volatile 变量值都相同。使用建议:在两个或者更多的线程访问的成员变量上使用volatile。当要访问的变量已在synchronized代码块中,或者为常量时,不必使用。由于使用volatile屏蔽掉了VM中必要的代码优化,所以在效 阅读全文

posted @ 2011-08-11 15:03 不知道 阅读(319) 评论(0) 推荐(0)

c语言常用memory分配相关函数
摘要:calloc: calloc是一个C语言函数 函数名: calloc 功 能: 在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。 跟malloc的区别: calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据。 用 法: void *calloc(unsigned n,unsigned size); 阅读全文

posted @ 2011-07-19 14:59 不知道 阅读(730) 评论(0) 推荐(0)

导航