收藏 分销(赏)

2023年C++知识点整理.doc

上传人:二*** 文档编号:4566486 上传时间:2024-09-30 格式:DOC 页数:8 大小:33.54KB 下载积分:5 金币
下载 相关 举报
2023年C++知识点整理.doc_第1页
第1页 / 共8页
本文档共8页,全文阅读请下载到手机保存,查看更方便
资源描述
C++前5章知识点总结 第一章 简朴的输入与输出 1.1 第一个c++程序 1. Cout流插入运算符<<,cin流提取运算符>>,endl操纵算子 2. 注释用//, 3. ””包含的头文献会先到库中寻找,若找不到则到本地查找。<>则只会到库中查找。 4. 最新编译器支持标准的c99<iostream>。 5. cout<<a;原型为ostream &<<(ostream & cout,类型a);第一个参数和返回值都是引用类型的。Cin同理。 1.2 两个整数相加 1. <<可以看作是函数,事实上是一个运算符重载(第六章涉及) 1.3 操纵算子endl与字符’\n’的比较 1. 操纵算子可以使用在输入或输出表达式中,可改变流状态。 2. Endl作用①换行②刷新流缓冲区。优点:在程序未执行完前就可以获得信息 1.4 使用cin和’>>’输入数据 1. 输入对象cin和流提取对象输入数据容易犯得错误 ① 输入数据与接受数据类型不匹配。定义类型 ② 忽略输入字符串时空格的解决。(空格以后所有失效) 2. Hex表达十六进制。 习题1 1.1 #include<iostream> using std::cin; using std::cout; using std::endl; int main(void) { int nNum; double dNum; char cNum; cout<<"Input data int,double,char by order"<<endl; while((cin>>nNum>>dNum>>cNum)!=NULL) //cin返回值本来是basic_istream&类型的 //打开头文献<IOS.H>,找到ios的定义,其中有这么一条语句,类型转换函数的定义: //operator void *() const { if(state&(badbit|failbit) ) return 0; return (void *)this; } //所以表达式为了匹配bool类型将自动转换为void*类型。 //假如读入时发生错误返回0,否则返回cin的地址。 { cout<<"output data:"<<endl; cout<<nNum<<dNum<<cNum<<endl; } cout<<"Wrong Input!"<<endl; return 0; } 1.2 #include<iostream> using std::cin; using std::cout; using std::endl; void f(int n); int main(void) { int nNum; cout<<"Input a number (int)if wrong exit!"<<endl; while(cin>>nNum!=NULL) f(nNum); cout<<"Wrong Input!"<<endl; return 0; } void f(int n) { if(n%2) cout<<"it's odd!"<<endl; else cout<<"it's even!"<<endl; } 1.3 #include<iostream> using std::cin; using std::cout; using std::endl; void f(); int main (void) { f(); return 0; } void f() { char cCh; cout<<"Input a letter(char):"<<endl; while(cin>>cCh!=NULL) { if(cCh>='a' && cCh<='z') cout<<"it's a small letter!"<<endl; else if(cCh>='A' && cCh<='Z') cout<<"it's a capital letter!"<<endl; else if(cCh>='0' && cCh<='9') cout<<"it's a number!"<<endl; else cout<<"others letter!"<<endl; } cout<<"Wrong Input!"<<endl;//比如输入了F6 } 第二章 C语言重点知识 1. 所有指针变量在32位机上都占4字节。 2. Int m=9;Char c[sizeof m];//对的,sizeof编译时求值。 3. 输入数组显示时可以cout<<”a[“<<i<<”]:”<<a[i]<<endl; 4. 数组名不能做左值 5. a[1,0]等价于a[0] 6. a[i][j]与*(*(a+i)+j)等价因素:*(a+i)=a[i] =>*(*(a+i)+j)=*(a[i]+j),a[i]是二维数组a当作是一维数组时的第i个元素,表达一个一维数组的首地址,所以*(a[i]+j)=(a[i])[j]可写成a[i][j]. 7. 生命周期:全局变量直到整个程序完全执行完才会被释放。作用域为全局所有。静态变量只能初始化一次,一般的都会默认为auto动态的,在其作用域内有效,栈上分派的变量会由于作用域的结束而被释放掉内存。而静态的不会。但静态作用域是局部的。 8. 函数指针指向某个函数时,函数指针类型必须与函数类型完全相应,(返回值类型和参数列表要相同)作用:函数的通用性和程序的可扩展性。 9. 递归条件: ① 拟定函数原型,明确函数功能。 ② 为递归函数找一个或多个非递归出口。 ③ 找到出口的递推式。 ④ 将函数递归使用在递推式中。 10. 内存分派问题。 ① 静态分派为栈区,动态分派为堆区。栈比动态分派快。 ② 返回栈内存错误:返回的指针指向动态栈内存数组(函数调用完释放了数组内信息) ③ 解决栈内存错误:返回的指针指向静态栈内存数组(函数调用完仍然保存) ④ 静态区数据不可修改。 ⑤ 注意内存泄露(动态存储区指针被修改或释放)问题和迷途指针(释放不指向动态存储区指针)问题。 11. 桶排序问题就是基数排序问题的特例。(详见数据结构) 习题 2.1 Int a=0,b=1; &a=&b; //无法做左值 Void *p=&a; *p=b; //int类型无法强制转化为void*类型 2.2 数组长度为4,初始值为1,2,3,4,’\0’ 数组长度为1,初始值为0,’\0’ 数组长度为8,初始值为hello’\0’’\0’’\0’ 2.3 没有明白题意。望见谅。 2.4 #include <iostream> #include <ctime> #include <cstring> using std::cin; using std::cout; using std::endl; #define Maxsize 10 int Min(int nArr[],int nLen); int main(void) { srand(time(NULL)); int nArr[Maxsize]={0}; for(int i=0;i<Maxsize;i++) { cout<<"random numbers ["<<i+1<<"]"<<endl<<(nArr[i]=rand()%1000)<<endl; } cout<<"Min is "<<Min(nArr,Maxsize); return 0; } int Min(int nArr[],int nLen) { int nTmp=nArr[0]; for(int i=1;i<nLen;i++) { if(nTmp>nArr[i]) nTmp=nArr[i]; } return nTmp; } 2.5 2.6 2.7 第三章 C++语言对C语言的部分扩充 第四章 类和对象 第五章 友元
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服