
C/C++
TedSmile
Android、人工智能、深度学习、人脸识别
展开
-
串链基本操作的实现
<br />#include<stdio.h><br />#include<stdlib.h><br />typedef struct snode<br />{<br /> char data;<br /> struct snode *next;<br />}LiString;<br />/*字符常量cstr赋值给串s*/<br />void StrAssign(LiString *s, char cstr[])<br />{<br /> LiString *p1;<br /> LiString *p2;<原创 2011-01-29 11:32:00 · 1049 阅读 · 0 评论 -
C++中的虚函数(virtual function)
1.简介 <br /> 虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:<br /><br />class A<br />{<br />public:<br /> virtual void foo() { cout << "A::foo() is called" << endl;}<br />};<br /><br />class B: public A<br />{<br />public:<br /> v转载 2011-05-09 09:44:00 · 494 阅读 · 0 评论 -
快速排序
算法思想简单描述:快速排序是对冒泡排序的一种本质改进。它的基本思想是通过一趟扫描后,使得排序序列的长度能大幅度地减少。在冒泡排序中,一次扫描只能确保最大数值的数移到正确位置,而待排序序列的长度可能只减少1。快速排序通过一趟扫描,就能确保某个数(以它为基准点吧)的左边各数都比它小,右边各数都比它大。然后又用同样的方法处理它左右两边的数,直到基准点的左右只有一个元素为止。它是由C.A.R.Hoare于1962年提出的。显然快速排序可以用递归实现,当然也可以用栈化解递归实现。下面的函数是用递归实现的,有兴趣的朋友转载 2011-04-12 23:20:00 · 517 阅读 · 0 评论 -
define宏定义中的#,##,/符号
<br />1、# (stringizing)字符串化操作符。其作用是:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串。其只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前。<br />如:<br />#define example(instr) printf("the input string is:/t%s/n",#instr)<br />#define example1(instr) #instr<br />当使用该宏定义时:<br />example(abc); 在编译时将会展转载 2011-05-06 14:50:00 · 693 阅读 · 0 评论 -
C 语言的可变参数表函数的设计
首先在介绍可变参数表函数的设计之前,我们先来介绍一下最经典的可变参数表printf函数的实现原理。一、printf函数的实现原理在C/C++中,对函数参数的扫描是从后向前的。C/C++的函数参数是通过压入堆栈的方式来给函数传参数的(堆栈是一种先进后出的数据结构),最先压入的参数最后出来,在计算机的内存中,数据有2块,一块是堆,一块是栈(函数参数及局部变量在这里),而栈是从内存的高地址向低地转载 2012-08-16 14:37:33 · 645 阅读 · 0 评论 -
关于位结构体
http://blog.youkuaiyun.com/iloveyin/article/details/7421698含位域结构体的sizeof:前面已经说过,位域成员不能单独被取sizeof值,我们这里要讨论的是含有位域的结构体的sizeof,只是考虑到其特殊性而将其专门列了出来。C99规定int、unsigned int和bool可以作为位域类型,但编译器几乎都对此作了扩展,允许其它类转载 2012-11-06 09:06:34 · 566 阅读 · 0 评论 -
error值说明
ECHILD未给出的过程。EAGAIN不处理。 尝试创建新进程失败,因为没有处理槽,或者没有足够的内存,或者最大嵌套级别已到达。E2BIG太长的参数列表。EACCES权限被拒绝。 文件的权限集不允许指定的访问。 此错误指示尝试访问一个文件 (或者,在某些情况下,一个目录) 将与文件属性不兼容的方法。例如,该错误,当尝试从不处于打开状态时的文件读取,打开要编写转载 2013-01-10 16:36:54 · 927 阅读 · 0 评论 -
fopen和open
原文地址:https://www.cnblogs.com/NickyYe/p/5497659.html1. 来源从来源的角度看,两者能很好的区分开,这也是两者最显而易见的区别:open是UNIX系统调用函数(包括LINUX等),返回的是文件描述符(File Descriptor),它是文件在文件描述符表里的索引。fopen是ANSIC标准中的C语言库函数,在不同的系统中应该调用不同的内核api。返...转载 2018-04-27 15:40:01 · 361 阅读 · 0 评论 -
int和long区别
早期的操作系统是16位系统, int用二字节表示,范围是-32768~32767; long用4字节表示,范围是-2147483648~2147483647。 后来发展到32位操作系统, int 用4字节表示,与long相同。 目前的操作系统已发展到64位操作系统,但因程序编译工艺的不同,两者表现出不同的差别: 32位编译系统:int占四字节,与lon...转载 2018-11-19 13:56:09 · 36032 阅读 · 0 评论