这段时间,被京东的校招给弄得各种焦灼了。等了一个星期,竟然才一点点的发了北京地区的s级别offer!简直忍无可忍了!想来想去,还是静下心认真学好自己要学的东西才是王道。无论给我与不给我,都乃天命,何须过度的去纠结呢!所以开始继续我的c++之路!
由于谭浩强这本c++包含了整个面向过程与面向对象的部分,所以我在面向过程部分会简单的几章合并来写,并挑出自己觉得重要的课后习题来写出代码,一并发出,在后面的面向对象的章节,我会着重分章来介绍与学习。一步步来,要的就是脚踏实地!主要的编写风格,我昨晚查了很多经验文章,自己也想了下,我会用那种列表形式来撰写,就是将我认为重要的并且难点难记点分上个1,2,3等等来列出,其中每条融入自己的想法与心得,有整个学生生涯各大考试笔试中经常遇到的,也有项目实践中碰到的等等,都会融入其中。此些文章,并不是什么高大上的前沿技术剖析或是什么高深算法经验总结之类的,要说只能是一种学习总结或是学习理,我是学习之人,向各位大牛前辈们致敬!向你们学习请教!就这样!
Chapter 1~Chapter 2
->C++的初步知识
1、 从c到c++已经这么多年,完完全全的贯穿了我的整个专业学习生涯(大学本科到研究生)。其中Unix、c、贝尔实验室、Ritchie、Bjarne Stroustrup、ANSI等等都是相互交融着的、你中有我我中有你的背景,一直以来不绝于耳。(p.s:c++11已经在2011年推出,介于普及度的问题,我先着手与老标准的c++,在接下来的《c++primer》的学习梳理中我再重点梳理新版的内容)
2、简单的c++程序
/* 大名鼎鼎的hello world起手程序 */ #include<iostream>//头文件包含 using namespace std;//命名空间声明,作用在之后的详细章节中再介绍 int main(){//主函数入口,程序执行从此处 cout << "Hello World!" << endl;//标准输出 return 0;//返回值 }//程序结束 /* 终端输入的两数之和 */ #include<iostream> using namespace std; int main(){ int a, b, sum; cin >> a >> b; sum = a + b; cout << "a+b=" << sum<<endl; return 0; }
3、函数要在使用之前进行声明或者定义。此处在我的理解就是,在我具体调用的地方,前面要么有这个函数的定义,要么是有这个函数的声明,其中定义与声明还有小小的差别,下面我将代码贴出,具体做注释!
/** 两个数最大值 **/ #include<iostream> using namespace std; int main(){ int a, b; int max(int, int);//函数声明(声明可以不用给出具体的形参变量,直接来参数类型就行) cout << "亲,输入a:"<<endl; cin >> a ;//输入a cout << "亲,输入b:" << endl; cin >> b;//输入b cout << "a与b最大的是 :" << max(a,b)<<endl;//函数调用 return 0; } int max(int i, int j){//函数定义(定义需要具体的形参变量) return i < j ? j : i;//三目运算符 }
4、对象初识(此处介绍的是简单的面向对象知识,为整本书后面做铺垫)。详细的面向对象知识与梳理,在后面我会发出!现在在这里具体上一个class类和对象的代码!
/** 类与对象 **/ #include<iostream> #include<string> using namespace std; class Student{//类定义 private: int score;//成员变量 string name; bool sex; public: Student(){}//构造函数 Student(int score, string name, bool sex) :score(score), name(name), sex(sex){}//构造函数重载 void display(){//成员函数 cout << "分数是:" << score << ";名字是:" << name << ";性别是:" << sex << endl; } }; int main(){ Student s, s1(100, "jicheng", 1);//申请对象 s.display();//调用对象的成员函数 s1.display(); return 0; }
5、c++程序规范与构成:
①预处理命令(以“#”开始的)②全局声明部分(在函数之外的部门,可以是声明或是定义)③函数(包括主函数与普通函数)
此处要注意的是头文件包含的问题:原始c语言可以用“.h”结尾的包含方式包含标准库文件,例如#include<iostream.h>,如果这样写可以不用写下面的using namespace std就可以直接使用cin、cout、cer等,c++推荐的模式是不“.h”包含using namespace std的模式,为了兼容以前的c程序,故可以用老的c模式来编写,有的编译器也可以通过,但不推荐就是了。
6、c++程序编译运行过程:
编辑(.cpp文件)->编译(用源程序.cpp文件生成.obj文件)->连接(将.obj文件与库文件和其他目标程序连接生成可执行文件.exe文件)->执行
->数据类型与表达式
1、c++数据类型如下:(在c++11中还有很大的扩展)
基本类型->整型->短整型(short [int])(2字节)
->整型(int)(4字节)
->长整型(long [int])(4字节)
->字符型(char)(1字节)
->浮点型->单精度型(float)(4字节)
->双精度型(double)(8字节)
->长双精度型(long double)(VC:8字节;G++:12字节)
->布尔型(bool)(1字节)
->空类型(void)
非基本类型->枚举类型(enum)
->数组类型(type[])
->结构体类型(struct)
->共用体类型(union)
->类类型(class)
->type *
指针类型(4字节)
(type为非void类型的数据类型;其中整型、短整型、长整型、字符型、单精度双精度型都有signed与unsigned之分,signed在类型前可以不用加此关键字,unsigned要必须加)
2、编译器是怎么区分char类型跟bool类型的(都占1个字节)?
c/c++的编译器中有一个变量表,表的关键字段有(数据类型,变量名,首地址,值),每声明一个变量,就把这个变量的相关信息填进表中
3、常量的表示:
十进制->123
八进制->045
十六进制->0XAB
float型->0.23f
double型->0.34
p.s:普通浮点类型不在后面加上“f”,编译器会当做双精度型处理;浮点与双精度类型的存储分为三个部分:符号部分、数字部分(必须小于1且小数点后第一位不能为0)、指数部分。
4、常用的转义字符:
\n 回车转向下一行的第一列(10)
\t 制表符(tab键的效果)(9)
\0 空字符(0)
\b 退格,移动到前一列(8)
\r 回车转向本行的第一列(13)
\f 换页转向下一页的开始(12)
\' 单引号(39)
\" 双引号(34)
5、常用ASCII码:
'a' 97
'A' 65
'0' 48
p.s:小写比大写大32!
6、字符串常量:"abc"(最后还有一个'\0'结束符,故占3字节);字符常量:'a'
7、#define与const
#define主要是从c语言继承过来的一种常量替换的模式。具体用define定义的常量叫做符号常量,在内存中并没用以他命名的存储单元,就是将程序中用到此符号的地方替换成define中定义成的符号,别没有具体的类型可言;
const是c++程序推荐使用的一种方式,主要是定义的一种常变量。他拥有具体的类型,可进行差错检测,在内存中存在以他命名的存储单元,可以用sizeof求它的所占空间大小,与变量唯一不同的是不可写该其最初定义的值。
8、运算符问题(优先级):
初等运算符(() [] -> .)
->单目运算符(new delete == -- sizeof * & !)
->算术运算符(<< >>)
->关系运算(> >= < <=)
->逻辑运算符(&& || & | ^)
->条件运算符(?:)->赋值运算符
->逗号运算符
9、标准输出(cout)的结合是自右向左的,e.g:
#include<iostream> using namespace std; int main(){ int i = 0; cout << i++<<","<<i++ << endl;//结果是1,0 return 0; }
10、(i++)+(i++)+(i++)如果i的初始值是1,表达式结果是3,i最后的值是4.
11、逗号运算符的问题,举例说明:
a=3*5,a*4
由于赋值运算符比逗号运算符的优先级别要高,所以a先等于3*5的值,再代入a*4的式子中去运算,整个表达式的结果就是最后a*4的值。
相关推荐
C++程序设计-谭浩强-清晰版完整书签 封面 -24 目录 -10 第1篇 基本知识 1 第1章 C++的初步知识 3 1.1 从C到C++ 3 1.2 最简单的C++程序 5 1.3 C++程序的构成和书写形式 12 1.4 C++程序的编写和实现 13 1.5 关于...
《中国高等院校计算机基础教育课程体系规划教材:C++程序设计(第2版)》作者谭浩强深入调查了大学的程序设计课程的现状和发展趋势,参阅了国内外数十种有关C++的教材,认真分析了读者在学习中的困难和认识规律,设计了...
C++程序设计-谭浩强-PDF电子书,C++入门参考书籍不错的选择!
本资源为谭浩强C++程序设计PDF版本,资源分为章节介绍,提取了更加精炼的内容,资料中的源码资源可以在搜索“C++程序设计(谭浩强版+源码)”
《C++面向对象程序设计答案》-第五章--谭浩强-经典实例,包含继承 多态,源代码
《C++面向对象程序设计》习题答案-第二章--谭浩强-清华大学出版社.docx
谭浩强--C语言程序设计(第二版)习题答案
《C++程序设计》谭浩强完整版答案 史上最完整版本 讲解最详细
C++程序设计_谭浩强·答案 C++程序设计_谭浩强·答案C++程序设计_谭浩强·答案
C++程序设计_谭浩强_PDF电子书,入门的好书
C++程序设计 - 谭浩强·清华大学 PDF高清版
c++程序设计,谭浩强课件配套代码。愿所有中国程序员水平更上一层楼。
C++面向对象程序设计》答案-第四章--谭浩强
本文档适合广大的一线教师及有需要的C++小白,有需要的拿去,不谢!
C程序设计---谭浩强-源代码.rarC程序设计---谭浩强-源代码.rarC程序设计---谭浩强-源代码.rar
C++程序设计_谭浩强_2004年版C++程序设计_谭浩强_2004年版C++程序设计_谭浩强_2004年版
学过c++的人对谭浩强的大名一定不陌生,我觉得他是在国内真正写书的人,花了心思的,而且为学生着想,浅显易懂,不像国内计算机的很多书,东抄两句,西抄两句,一点都没有自己的思路,而且很难懂,为了名利而写书
谭浩强 c++程序设计 2004,这个是高清的,而且是谭浩强的,没的说
C++程序设计(谭浩强完整版) C语言的主要特点是: C语言是一种结构化的程序设计语言,语言本身简洁、使用灵活方便。既适用于设计和编写大的系统程序,又适用于编写小的控制程序,也适用科学计算。