![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 72
sunbingxi_
这个作者很懒,什么都没留下…
展开
-
类型转换
类型转换分为两种,一种是隐式类型转换,一种是显式类型转换。这里举一个例子:int a=8.0/3;.8.0是double类型(C规定,程序中出现的任何无后缀小数都为double类型,而出现的任何无后缀整数都为int型,在写程序时一定要记住),而3是int型。除法运算可否在两种不同类型的变量之间进行呢?显然是不行的。因此,这里就需要转换。我们知道,double型可表示的范围远远大于int型。而C和C++在这类转换中的原则就是,范围小的类型向范围大的类型转转载 2010-11-03 21:50:00 · 638 阅读 · 0 评论 -
111
#include #include #include #define YES 1#define NO 0#define NUM 26struct trie{ trie * next[NUM]; int isword;};trie head,*t,*s;int Max;char str1[100];int exist(trie &hea原创 2012-11-23 07:43:28 · 491 阅读 · 0 评论 -
字典
经典的字典树题目。。字典树:又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。 #include #include #include #include转载 2012-11-23 01:24:46 · 390 阅读 · 0 评论 -
大数运算
//=============================================================================================================#include "Big__CALC.h"int main(){ char str1[200]="9876543210987"; char str转载 2012-11-27 13:59:50 · 403 阅读 · 0 评论 -
字符串反转的几种算法
编写反转字符串的程序,要求优化速度、优化空间(1)第一次看到这个题目首先想到遍历这个字符串,把第一个和最后一个字符交换,第二个和倒数第二个交换,依次循环即可,下面时代码char* strrev1(const char* str){ int len = strlen(str); char* tmp = new char[len + 1]; strcpy(tmp,str); for (int i = 0; i (2)用数组下标的方式访问数组,实原创 2011-03-28 11:00:00 · 902 阅读 · 0 评论 -
c/c++ 面试常考算法
二分查找算法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=(l+m)/2; } if(a[m]2.在母串中查找子串出现到次数int fi原创 2011-03-25 10:28:00 · 1996 阅读 · 0 评论 -
C++虚函数表解析(转)
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家 一个清晰的剖析。转载 2011-02-23 10:34:00 · 518 阅读 · 0 评论 -
typedef和#define的区别
一、typedef的用法 <br />1、在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: <br />typedef int INT; <br />typedef char* Pchar; <br />typedef (int*) pINT; <br />typedef unsigned char uchar; // 将频繁使用且较长的类型定义一个别名<br />2、typed原创 2011-01-15 16:14:00 · 805 阅读 · 0 评论 -
定义一个数组,编程打印它的全排列
#define N 3 int a[N] = { 1, 2, 3 }; 则打印出 1 2 3 1 3 2 2 1 3 2 3 1 3 2 1 3 1 2 1 2 3 程序的主要思路是:把第1个数换到最前面来(本来就在最前面),准备打印1xx,再对后两个数2和3做全排列。把第2个数换到最前面来,准备打印2xx,再对后两个数1和3做全排列。把第3个数换到最前面来,准备打印3xx,再对后两个数1原创 2011-01-09 16:45:00 · 4190 阅读 · 0 评论 -
程序中内存分配原理分析
一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表. 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相原创 2010-11-07 14:13:00 · 589 阅读 · 0 评论 -
微软strcpy,strcat和strcmp、memcpy的实现源代码
/****char *strcpy(dst, src) - copy one string over another**Purpose:* Copies the string src into the spot specified by* dest; assumes enough room.**Entry:* char * dst - string over which "src" is to be copied* const char * src - string to be copied over "d转载 2010-11-05 16:07:00 · 843 阅读 · 0 评论 -
main() 函数的有参形式
初学C时看到的 main() 是无参函数,但是外界有时候要向 main 传递一些参数,这时候就要用到 main(int argc,char *argv[]) 这样的有参形式argc int类型,记录命令和参数的总个数,同时决定了 argv 指针数组的大小argv 是一个指针数组实例化的解释一下:假设你编译获得的可执行程序叫 test那么无参数的命令 $./test传到main 里的 argc = 1 argv[0]="test" 如果你的命令是带参数的呢, 如:转载 2010-11-06 20:52:00 · 581 阅读 · 0 评论 -
原码,补码,反码
原码、反码、补码2008年03月02日 星期日 18:40原码:<br />将最高位作为符号位(以0代表正,1代表负),其余各位代表数值本身的绝对值(以二进制表示)。<br />为了简单起见,我们用1个字节来表示一个整数。<br /> +7的原码为: 00000111<br /> -7的原码为: 10000111<br />问题:<br /> +0的原码为:00000000<br />原创 2010-12-29 14:42:00 · 794 阅读 · 0 评论 -
12222
#include #include #include #define YES 1#define NO 0#define NUM 26struct trie{ trie * next[NUM]; int isword;};trie head,*t,*s;int Max;char str1[100];int exist(trie &head,char x[]){翻译 2012-11-23 07:44:57 · 499 阅读 · 0 评论