c++与c
piratejk
这个作者很懒,什么都没留下…
展开
-
c++中求数组长度
int a[10]; sizeof(a) 就是数组所占用的字节数 也就是长度 在32位机器上是40 如果你要求的是当前数组中元素的个数,可以用 个数 = sizeof(a)/sizeof(int) 如果是 char a[10] 就是 sizeof(a)/sizeof(char)转载 2008-10-26 12:49:00 · 2089 阅读 · 0 评论 -
fstream,ifstream,ofstream
<br />c++ 个类叫做fstream,该函数可以打开一个文件作为流。创建一个对象,然后调用该对象的open函数,主要有两个参数,第一个参数是字符串,表示文件的地址,第二个参数是代开方式,如:<br />fstream fin("a.txt",ios::in);<br />if(fin)<br />{<br /> cout<<"opened"<<endl;<br /> fin.close();<br />}<br />else<br />{<br /> cout<<"原创 2010-08-23 14:47:00 · 381 阅读 · 0 评论 -
初始化类的引用成员变量
我们知道,在c++的类中,不能在声明变量时直接将给其赋值。但是引用变量和常量必须在声明时赋值。为了解决这个问题,可以再构造函数时使用初始化类表方式(引用变量和常量必须使用这种方式)。如:类的声明: Class Test { public: Test(int a,int& b, int c);// pr原创 2009-12-09 09:51:00 · 2562 阅读 · 0 评论 -
动态分配二维数组
静态的分配一个二维数组很简单,如: int[3][4];但是动态分配二维数组有点复杂,不能写成:double **arr=new double[m][n]; 可以用如下的函数动态分配二维数组:int ** dyn_di(int m,int n){ int *arr = new int[m*n];//分配存储数据的单元 int **a = new int*翻译 2009-12-04 09:20:00 · 348 阅读 · 0 评论 -
指针常量和常量指针
const char * p;//指针常量(指向一个常量的指针) p="abc"; //p[1]=e; 错,指向的是常量,不能改变其值 char * const ptr = "abc";//常量指针//ptr = "ab"; 错,常量指针的指向不能被修改// char *const pt; 错,常量在定义时便应该初始化原创 2009-11-18 09:10:00 · 254 阅读 · 0 评论 -
今天搜狐的一道有趣的题
今天去了重大笔试搜狐,我报的时程序专员,考了很多c++的题。有一段时间没有看c++了,有一些搞忘了。搜狐出的题也很有意思,其中有一道题如下: 程序填空,在一个字符数组中,找出第一只出现一次的字符。如abacedb;则返回的是c char get(const char * s){ int i=0; int ch[256]; 1、(原创 2009-11-14 22:32:00 · 510 阅读 · 0 评论 -
显示调用构造函数和析构函数
前两天去hp面试,有个题问构造函数和析构函数可不可以显示调用。 回来上网查了下,原来两个都是可以显示调用的。如下:class A{ public: A() { cout } ~A() { cout }}; v原创 2009-10-18 13:07:00 · 1863 阅读 · 0 评论 -
指针数组和数组指针
指针数组是一个数组的每个元素都是一个指针;如: int *p[5];数组p含有5个元素,每个元素都是一个int类型的指针。 数组指针是一个指针指向一个数组;如:int (*P)[5];int a[5];p=&a;p是一个指向一个有5个元素的int数组; 注意:虽然 cout虽然a也是地址,a和&a值一样,但是p= a; 这样的赋值会报错。必原创 2009-09-27 19:49:00 · 236 阅读 · 0 评论 -
私有成员的访问
一般来说,私有成员只能在类内部访问,而不能在类外部访问,比如:class test{public: test(int x) { a=x; } private: int a;}void main(){ test t(1); cout}但是:如果class test{public: test(int x) { a=x; } int add(test t) { retur原创 2009-09-30 13:12:00 · 334 阅读 · 0 评论 -
enum
枚举类的定义格式如下:enmu tt{a,b,c,d=0,e};其中a,b,c,d,e分别对应0,1,2,0,1。申明变量:tt m=a;tt m=0;//错误的赋值不能将整形赋给枚举变量,但是可以将整形与枚举变量进行比较,如:if(m==0);if(m>0);原创 2009-09-30 12:07:00 · 231 阅读 · 0 评论 -
assert
assert函数定义在头文件中,它是程序员在调试程序时,用于提醒自己错误在哪里的一个手段,在软件发布时这段代码会被去掉。和try....catch语句不同。后者可以在catch语句块中处理异常。而前者只要不满足assert中的条件直接退出程序。而且后者会随着程序一起发布。 举例:比如在调用一个函数时,传输的参数是一个指针,则可以用assert语句 void t原创 2009-09-08 23:05:00 · 269 阅读 · 0 评论 -
struct 与typdef struct的区别
1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。 至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。 二、 typed转载 2008-12-10 16:12:00 · 865 阅读 · 0 评论 -
cin
cin.get()用于接收一个字符而且他可以接受空格、tab、回车。cin.get()接收字符(可以输入一串,它将输入的字符串放入输入流队列中,每调用cin.get()从队列中取出一个字符)。在输入时,遇到空格、tab、回车便结束此次输入。例:char a;int b;a=cin.get();coutb=cin.get();cout在运行时:输入a[回车],得到结果是:a原创 2008-11-19 22:23:00 · 383 阅读 · 0 评论 -
enum(枚举类型)
最近在看一本《数据结构与c++程序设计》的时候看到一个程序段里出现了enum,当时不知道什么意思,在网上查资料。有网友给出的一下解释。 枚举类型,就是整型的一种延伸而已, 是自定义的一种数据类型。 如: #include enum color {red,green,blue}; void main() { enum color c=red; printf("%d",c); } 则原创 2008-10-26 00:11:00 · 321 阅读 · 0 评论 -
c++对数组的引用
所谓数组引用,即指向数组的引用;如 int a[10] ; int (&b)[10] = a ;如果写成 int a[10] ; int* &b = a ;将会报错: cannot convert from int [10] to int *&。 或许你会说在数组名不就是指向这个数组的一个指针吗?题中a是int*类型的,b是转载 2008-10-28 00:11:00 · 16665 阅读 · 3 评论 -
c++函数返回值与引用
对于函数的返回值,看似简单,但并非如此,比如:int func(int a);该函数会返回一个int型,如果进行一个调用int result=func(3);会发生什么情况?首先,func将返回值复制到一个匿名临时变量中,在这里假设该临时变量为anony(其实是没有名字的,这里方便阐述);然后,再将anony的值复制到result,可以看出,这里是进行了两次复制的。而并非一次复制。对于返回引用的函数:int & func(int &a);比如该函数传入一个int的引用,然后再func中修改它,再返回其引用,原创 2011-01-25 10:44:00 · 7317 阅读 · 4 评论