c/c++
文章平均质量分 58
zhuwanglove
珍惜每一天。
展开
-
c实现的urlencode
可在项目中应用。/url encode char *urlencode(char const *s, int len, int *new_length){ #define safe_emalloc(nmemb, size, offset) malloc转载 2011-09-27 17:37:42 · 1262 阅读 · 0 评论 -
mac下utf-8转unicode
项目需要在mac下发送一段unicode数据,试用过mac自带的libiconv 每个字符确占有四个字节,上传到服务器后返回结果不对。从网上找了一段代码,稍加修改,在虚拟机上运行正确。 unsigned short int 占两个字节,符合unicode内存要求。 in原创 2011-09-27 17:35:05 · 2821 阅读 · 0 评论 -
sizeof 与 strlen的区别
<br />已知 char *str1="absde"; <br /> char str2[]="absde"; <br /> char str3[8]={'a',}; <br /> char ss[] = "0123456789"; <br /> 为什么 sizeof(str1)=4 sizeof(str2)=6; sizeof(str3)=8; sizeof(ss)=11;<br /> <br /> <br /> sizeof(str1)=4 ,原创 2011-03-29 11:37:00 · 391 阅读 · 0 评论 -
typedef struct 与struct的区别
<br />struct{<br /> int x;<br /> int y;<br />}test1;<br /><br />struct test<br />{int x;<br />int y;<br />}test1;<br /><br />typedef struct test<br />{int x;<br />int y<br />}text1,text2;第一个:只定义了一个test1的结构体变量,以后还想定义这种结构体的话,必须重写整个结构体。第二个:以后想定义结构体变量的话,转载 2011-05-11 16:14:00 · 430 阅读 · 0 评论 -
自已实现Vector
无聊的时候就阅读一下代码,下列代码涉及到基础的c++知识。 温故而知新。#include<iostream>using namespace std;template <typename Object>class Vector{ private: int thesize; int theCapacity; Object *objects; public: //构造函数 Vector(int initsize = 0) : thesize原创 2011-03-16 14:08:00 · 552 阅读 · 0 评论 -
命名空间
<br />命名空间: c++中为了在一定范围内让一部分模块起名不受其它模块命名冲突而采取的命名保护措施。 例如当一些模块功能由其它公司,或其它机构开发时,不能保证这些类名,函数取名与其它人员会产生命名重复的冲突。<br /> 其实在java,c#中命名空间使用非常多, java中的包(package) 更是发布开源包,用户开发时必须或常用的技术。这样,大家就可以各自开发自己的功能,实现堆积木式的开发。这或许是java强大易用的一个原因吧,因为有强大的开源包支持,汇集了牛人原创 2010-09-27 10:31:00 · 298 阅读 · 0 评论 -
c++中的空间与时间
c++中存在许多与空间,时间相关的内容,下面从空间,时间角度了解c++。空间: 内存空间: 进程内存空间分为四块: 1. 代码区 2. 全局变量,静态变量区 3.栈区 4. 堆区(程序员使用的内存) 命名空间: 为了避免命名冲突。常需将单独的模块命名新的空间,则在该命名空间中可以不考虑命名出与重名的问题,需要使用该命字空间内的对象或函数需引用该命名空间。 namespace name1 { ...... } using namespace name1;原创 2010-09-25 18:02:00 · 649 阅读 · 0 评论 -
c++中异常处理
<br />什么是异常:<br /> 异常就是特殊情况下发生的不可预知的bug. 它不同于一般的错误。比如说内存不够申请, 网络断线,电源突然断电等。异常机制就是来处理这些特殊情况下的突发事件。 c++中使用try throw catch 协同完成异常处理。<br />为什么要使用异常:<br /> 1. 使用c++异常处理机制能对异常进行集中处理,减少测试工作量,增加程序健状性。<br /> 2. 对于一些软件质量要求高的软件有使用异常机制的必要性。比原创 2010-09-25 16:56:00 · 697 阅读 · 0 评论 -
const与#define的区别
const const 是c++中的修饰符。 c++中常用来定义常量,修饰左值。#define 宏定义语句, 在编译阶段进行替换,不做类型检查。它们之间的最大区别:1. 对于const变量,系统只给了一个相应的内存地址,而#define则是给出了一个立即数。因为const变量是存放在内存的静态区域中,所以在程序运行过程中const变量只有一个拷贝,而#define 所定义的宏变量却有多个拷贝,所以宏在程序运行过程中所消耗的内存要比const变量的大得多。#define所定义的原创 2010-09-25 15:27:00 · 6821 阅读 · 0 评论 -
指针与引用
<br /> 什么是指针: 指针是指向某数据类型的地址类型,占用4个字节, 定义一个指针时应指出该指针是什么数据类型。 如定义一个整形指针: int * p; 可见定义指针变量是在变量前加一个指针标示符* 。 指针类型也可以为void, 即为无类型,当指针类型不确定时使用。该类指针可转换为其它任何类型指针,无需强制转换。指针的就应,通过在指针p前加* 可提取指针指向的变量的值。 如cout<<*p; 输出p指向的变量的值。<br /> 指针的作用: <br />原创 2010-09-17 11:01:00 · 402 阅读 · 0 评论 -
类模板与函数模板
<br />类模板: 类模板是为某一些类只有数据类型不同,而将数据类型进行抽象处理的机制. 可由该模板实现不同数据类型的模板类.<br />定义类模板: template <class T, int size> 放在类的首部. 在类中可使用这两个参数. <br /> T为类型参数 <br /> size 为非类型参数 ,用来说明类模板中属性. 如:<br />原创 2010-09-18 17:37:00 · 400 阅读 · 0 评论 -
STL与泛形程序设计
ANSI/ISO C++ 程序员手册: STL和泛型程序设计 作者: [转载]Danny Kalev 2007-09-27 面向对象设计对代码重用提供了有限的形式继承和多态。泛型程序设计风格可以有更高层次的可重用性。与数据隐藏不同,它依赖数据独立。C++有两个特性来支持数据独立:模板和运算符重载。两种特性合起来可以写出对实际对象类型要求很少的泛型算法,不管对象是基本类型还是用户定义类型。因此,这种算法不限于具体数据类型,比依赖类型的算法有更高的可重用性 by Danny Kalev简介 泛型程序设计转载 2010-09-19 17:29:00 · 1002 阅读 · 0 评论 -
拷贝构造函数与赋值函数
<br /> 拷贝构造函数: 拷贝引用另一对象的构造函数。 构造过程中引用该对象的属性值。<br /> 如: <br /> String::String(const String &other)<br /> {<br /> int length=strlen(other.m_data);<br />原创 2010-09-20 09:36:00 · 407 阅读 · 0 评论 -
const 的使用
<br />const类型定义:指明变量或对象的值是不能被更新,引入目的是为了取代预编译指令 <br />**************常量必须被初始化*************************<br />cons的作用<br /> (1)可以定义const常量 例如:<br /> const int Max=100;<br /> int Array[Max]; <br /> (2)便于进行类型检查转载 2010-09-16 16:23:00 · 220 阅读 · 0 评论 -
枚举类型
<br /> 枚举类型: C语言或C++的一种构造类型,它用于声明一组命名的常数。 <br /> 枚举类型的声明: 使用关键字 enum 。<br /> 访问修辞符 enum 枚举名:基础类型 <br /> { <br /> 枚举成员 <br /> } ; <br /> 基础类型必须能够表示该枚举中定义的所有枚举数值。枚举声明可以显式地声明 byte、sbyte、short、ushort、int、uint、long 或 ulong 类型作为对应的基础类型。原创 2010-09-16 16:16:00 · 529 阅读 · 0 评论