编程基础
文章平均质量分 84
itianyi
这个作者很懒,什么都没留下…
展开
-
关于Unicode编码的闲谈
发现网上关于编码的文章挺多,但是说的彻底清楚的基本没有,所以还是得自己来总结,毕竟每个人的基础不一样,所以只有每个人自己总结的才能透彻的理解。关于unicode:大家都知道unicode又叫统一码、万国码。可以百科一下unicode的定义:Unicode是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。原创 2013-01-11 14:52:53 · 999 阅读 · 0 评论 -
返回函数指针的函数
1.指针函数的定义 顾名思义,指针函数即返回指针的函数。其一般定义形式如下: 类型名 *函数名(函数参数表列); 其中,后缀运算符括号“()”表示这是一个函数,其前缀运算符星号“*”表示此函数为指针型函数,其函数值为指针,即它带回来的值的类型为指针,当调用这个函数后,将得到一个“指向返回值为…的指针(地址),“类型名”表示函数返回的指针指向的类型”。原创 2015-01-06 11:08:38 · 4926 阅读 · 2 评论 -
GCC强大背后
前记: 经常浏览博客园的同学应该会觉得本文有标题党之嫌,这个标题的句式来自于MiloYip大牛的大作《C++强大背后》,在此,向Milo兄致意。GCC,全称GNU Compiler Collection,是一套GNU开发的编译器环境,它的创始人便是大名鼎鼎的Richard.M.Stallman。最初GCC刚开始开发时,它还叫做GNU C Compiler,随着开发的深入,GCC很快得到转载 2015-01-23 13:03:59 · 8356 阅读 · 1 评论 -
函数指针 && 返回函数指针的函数的一些姿势
函数指针一些知识(1) , 在mj下拉刷新中遇到了定义的一个宏,看起来比较晦涩,如下#define msgSend(...) ((void (*)(void *, SEL, UIView *))objc_msgSend)(__VA_ARGS__)其实就是把objc_msgSend函数指针强制转换成另一种类型((void (*)(void *, SEL, UIView *)))的函原创 2015-01-06 12:06:58 · 3149 阅读 · 0 评论 -
函数指针
函数指针一、普通的函数指针一旦函数被编译并载入计算机中执行,它就会占用一块内存,这块内存有一个地址,因此函数也有地址。 1. 定义一个函数指针示例代码如下:void (*funcPtr)();这个例子将funcPtr定义为一个指向函数的指针,这个函数没有参数,返回值为空。注:*funcPtr 两侧的括号是必须的,如果去掉括号,原创 2015-01-06 12:02:25 · 840 阅读 · 0 评论 -
对于拷贝构造函数和赋值构造函数的理解
昨天晚上在看智能指针的时候,我发现自己连一个拷贝构造函数和赋值构造函数都写不出来,自己就尝试写了一个版本,结果发现错误百出,对于拷贝构造函数和赋值构造函数的理解仅仅停留在理论的方面,而不知其中太多的内涵。比如我们都知道拷贝构造函数和赋值构造函数最大的不同在于: 拷贝构造是确确实实构造一个新的对象,并给新对象的私有成员赋上参数对象的私有成员的值,新构造的对象和参数对象地址是不原创 2013-06-07 13:19:39 · 780 阅读 · 0 评论 -
c++与oc的对比
我觉得最主要的区别就是,c++中的对象可以是动态创建的(使用new来创建,返回对象的地址),也可以是直接的创建对象(如:A a;就是直接创建)。所以在c++中就有了 值传递 与指针传递的区别。在java中是没有的,oc中也是没有的,因为java与oc创建的对象都相当于是创建的对象的指针,而不能直接的创建对象本身,都是通过这个指针去访问对象的。比如,我在c++中创建一个B对象,可以用原创 2013-06-07 13:09:56 · 7482 阅读 · 0 评论 -
C中函数传递参数原理:值传递, 指针传递?
这几天在学习C过程中,在使用指针作为函数参数传递的时候出现了问题,根本不知道从何得解:源代码如下: createNode(BinNode *tree,char *p) { tree = (BinNode *) malloc(sizeof(BinNode)); tree->data = *p; }该代码段的意图是通过一个函数创建一原创 2013-02-20 10:36:38 · 10109 阅读 · 3 评论 -
智能指针 与 oc中的指针
智能指针的原理及实现当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝;另一种更优雅的方式是使用智能指针,从而实现指针指向的对象的共享。智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同原创 2013-06-07 15:41:38 · 4960 阅读 · 0 评论 -
抽象类
用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象。在java中,含有抽象方法的类称为抽象类,同样不能生成对象。凡是包含纯虚函数的类都是抽象类。抽象类是不完整的,并且它只能用作基类。它与非抽象类的不同:1、抽象类不能直接实例化,并且对抽象类使用 new 运算符是编译时错误。虽然一些变量和值在编译时的类型可以是抽象原创 2013-06-05 19:13:57 · 871 阅读 · 0 评论 -
局域网私有IP地址上外网的原理
局域网私有IP地址上外网的原理 IP地址分为两部分,网络号和主机号,这种分法应用在私有和公有IP地址上。一个局域网中,为了该局域网的安全,我们应用了私有IP地址,为了和Internet中的其他主机进行通信,我们用的私有IP地址必须为: A级:10.0.0.0 - 10.255.255.255 B级:172.16.0.0 - 172.31.255.255 C级:192.168.0.0原创 2013-05-13 00:48:11 · 3933 阅读 · 0 评论 -
进程与线程的一个简单解释
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是 CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工转载 2013-04-24 19:41:06 · 687 阅读 · 0 评论 -
MAC OS X 终端命令入门 (简单常用整理)
今天小研究了一下MAC的终端命令,主要为了方便调试程序用,XCODE用不来啊。。。在这里记下。。防止丢失pwd 当前工作目录cd(不加参数) 进rootcd(folder) 进入文件夹cd .. 上级目录cd ~ 返回rootcd - 返回上一个访问的目录rm 文件名 删除c转载 2013-02-22 16:39:07 · 50349 阅读 · 1 评论 -
Java/C/C++中方法(函数)传值和传引用的问题
java方法中值传递和传引用的问题是个基本问题,但是网上资料众说纷纭,让初学者很郁闷,其实很简单,只不过理解方式不一样。先说说网上说的值传递与引用传递:1,值传递:传递的是值的拷贝,也就是说传递后就互不相关了,无法改变实参的值。例如:public class TempTest {private void test1(int a){a = 5;Syst原创 2013-02-20 12:03:30 · 1787 阅读 · 0 评论 -
编译器(GNU & GCC & clang & llvm)
前言:很多时候,出现一些类似GNU,GCC,CLANG,LLVM等与编译器有关的名词的时候,都不太清楚它到底是干嘛的,理解这些东西后,对于xcode中很多配置型的需求修改起来都会得心应手,因此有必要了解透彻他们直接的关系与区别。1,GNU先看看wiki百科上的官方说明:“GNU,名称来自Gnu's Not Unix"的缩写,一个类UNIX的操作系统,由GNU原创 2015-01-23 16:19:21 · 29498 阅读 · 4 评论