C/C++语法基础
gxl123
XXX
展开
-
break与continue
break与continue1.区别:break结束整个循环过程,不再判断执行循环的条件是否成立; continue只结束本次循环,即跳出循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。2.break只能用于循环语句和switch语句,所以是结束循环语句或switch语句; continue只能用于循环语句。Eg:计算r=1到r=10时的圆的原创 2007-03-09 12:08:00 · 878 阅读 · 0 评论 -
运算符重载(实现CString类)
private: char*m_pdate;public://构造函数CString::CString(){};//拷贝构造CString::CString(const CString& t_cstring){ if(m_pdate!=NULL) delete[]m_pdate; m_pdate=new char[st原创 2010-03-17 11:31:00 · 2549 阅读 · 0 评论 -
什么是多态性?
多态性分:重载(OVERLOAD,重载只是函数名相同,返回类型,参数不同,早期匹配) 虚函数(函数必须有完全相同的返回类型和参数表,晚期匹配 ) 虚函数:一般虚函数(基类有函数体有实现,子类可重写也可不重写) 纯虚函数(基类只有函数体没有实现 virtual fun()=0,子类必须实现此函数体,至少含有一个纯虚函数的类是抽象类)原创 2010-03-16 22:35:00 · 1160 阅读 · 0 评论 -
字符与字符串(字符数组)的输入区别
char c;scanf("%c",&c);char str[5];scanf("%s",str) //因为字符数组名本身代表地址原创 2007-03-30 14:51:00 · 958 阅读 · 0 评论 -
指针使用前要分配地址空间
学了几年C语言,到现在才明白这一点,惭愧!int* p;int a;p=&a; //分配地址空间或#define LEN sizeof(int)void main(){ int* p; p=(int*)malloc(LEN); //分配地址空间 *p=1; printf("%d",*p);}如果是这样,就错了:int*p;*p=1; printf("%d",*p); //没有分配地原创 2007-03-30 15:07:00 · 1251 阅读 · 2 评论 -
冒泡排序与选择排序
//起泡法思路:将相邻两个数比较,将小的调到前头#includevoid main(){ int i,j,temp; int array[5]; for(i=0;i { scanf("%d",&array[i]); } for(i=0;i { for(j=0;j { if(array[j]>array[j+1]) //比较相邻的两个数,将小的放到前头 { temp=arra原创 2007-03-27 14:30:00 · 777 阅读 · 0 评论 -
const与指针(从右向左读)
const与指针(从右向左读)char*const cp; cp是一个const指针,指向char型. 指针本身cp值不能修改char const* pc; pc是一个指针,指向const char型 指针所指的对象*pc值不能修改const char* pc2; 同上, pc是一个指针,指向const char型同上eg:void f原创 2007-03-09 12:11:00 · 1228 阅读 · 0 评论 -
内存的分配与释放
内存的分配与释放void *malloc(unsigned int size) new 类型[初值]1必须是指定需要开辟的内存空间大小 1不需指定开辟的内存空间大小 (size是字节数,需事先求出或由sizeof求出)2返回值是void原创 2007-03-07 22:14:00 · 800 阅读 · 0 评论 -
递归函数
递归函数 [ firedy 发表于 2007-1-20 12:54:00 ]转载 2007-03-07 21:16:00 · 1228 阅读 · 0 评论 -
几种易错的运算符
几种易错的运算符/ (除法运算符,但舍去小数并”向0取整”,如5/3=1,-5/3=-1)% (求余运算符,%两侧均应为整形数据,如7%5的值为3, 6%3值是0), (逗号运算符) 表达式1,表达式2 求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。Eg: 3+5,6+8 的值是14 a=3*5,a*4 则原创 2007-03-09 12:10:00 · 603 阅读 · 0 评论 -
cdecl、stdcall、fastcall是什么?哪种可以实现个数不定的入口参数,为什么?
三者都是函数调用的约定。cedel:c declare(c调用约定)的缩写,是c和c++程序的缺省调用方式,规则是,从又向左的顺序压参数入,由调用者把参数弹出栈,对于传入参数的内存栈是由调用者来维护的,正因为如此,只有这种调用方式可以实现个数不定的入口参数(可变参数)。stdcall:是pascal程序的缺省调用方式,规则是,按从右向左的顺序入栈,被调用的函数在返回前清理传送参数的内存栈。原创 2010-03-17 15:09:00 · 1669 阅读 · 5 评论