走向C之路--精品PPT课件.ppt

上传人:本田雅阁 文档编号:2767848 上传时间:2019-05-12 格式:PPT 页数:22 大小:759.01KB
返回 下载 相关 举报
走向C之路--精品PPT课件.ppt_第1页
第1页 / 共22页
走向C之路--精品PPT课件.ppt_第2页
第2页 / 共22页
走向C之路--精品PPT课件.ppt_第3页
第3页 / 共22页
走向C之路--精品PPT课件.ppt_第4页
第4页 / 共22页
走向C之路--精品PPT课件.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《走向C之路--精品PPT课件.ppt》由会员分享,可在线阅读,更多相关《走向C之路--精品PPT课件.ppt(22页珍藏版)》请在三一文库上搜索。

1、走向C+之路,WindyWinter ,#include main(t ,_,a) char*a;return ti+?,()?qzyrjuvcdefg h,!kbpolwxs.t main(“),课程适用性,迫于时间所限,本课程只能面向C语言程序设计基础较好的同学, 课程中凡是遇到C99标准已经提到的内容,将从简处理。 并且希望经过短期训练,让你能读懂、写出合格的C+程序, 至少不再认为今后将面对的RoboCup 2D球队底层是天书, 虽然这底层里也有大量的无厘头代码。 以及改善面对超过一个文件的工程即手足无措的状况。 注意:本课程不会建立面向对象和泛型编程的思维模式,因此不能替代面向对象程

2、序设计。 建议比较勤快的同学脱离本课程,用C+ Primer自学C+语言。,为你的程序贴上C+的标签,从这里开始,一个著名的C程序,#include void main() int i; for (i=0; i10; +i) printf(“Hello World!n”); ,#include main(t ,_,a) char*a;return ti+?,()?qzyrjuvcdefg h,!kbpolwxs.t main(“),贴上C+的标签,#include using namespace std; int main() for (int i(0); i10; +i) cout“Hell

3、o World!”endl; return 0; ,C+与C的相貌差别,Glance,#include _Bool scanf(“%d%d”,C的写法,C+写法,#include bool int a,b; cinab; cout a; vector b; vector c;,即时声明和初始化方法,This is the beginning.,C语言要求所有变量的声明必须在实意语句之前,也就是在所有的外面,或者是每对的最前面。 C+没有了这样的限制,变量只要遵循先声明后使用的原则就可以了,不再要求必须放在什么地方。这就是为什么我们可以在for语句头部塞上一个int i(0)。 “int i(0

4、)”里的(0)是指将i初始化为0,作用相当于int i=0。 但()的初始化方法不限于此: string a(“WindyWinter is talented.”); string b(a); string c = a; ()与=是否永远等价呢?对于内置类型是等价的,但对于类类型,一般是不等价的。,引用,Its something new.,引用(reference)是C+新定义的一种复合类型,其本意可以理解为变量的“别名(alternate name)”。 声明/定义一个引用: int a; int r被定义为a的引用后,r和a可以被认为是同一个变量。 引用的主要用在函数形参中(作用与指针相

5、仿): 避免传递规模巨大的实参; 将形参的值返回。,void swap(int ,引用,The difference between reference and pointer,是一个变量(当然也可以加上const成为常量); 存在“空指针”; 取地址运算符,解引用运算符。,指针,引用,应用应当被看作一个“符号”,与const指针类似; 不存在“空引用”; 用法与正常变量一样。,左值与右值,Left or right, that is the question.,赋值运算符左边必须是左值; 变量皆是左值; 变量的引用是左值; string str是左值; +i是左值; int *a = new

6、 int10; a是左值; 函数、表达式可以返回左值以引用的形式。,左值,右值,赋值运算符右边既可以是左值,又可以是右值; 常量皆是右值; 常量的引用是右值; “WindyWinter is talented.”是右值; i+是右值; int a10; a是右值; 函数、表达式可以返回右值以值的形式。,函数,inline函数。 形参允许有默认值,即函数可以声明为如下形式: void func(int a, int b=0, int c=1); 如果在调用时没有给出b,c的值,则b=0,c=1,即调用时可以不写有默认值的参数func(1), func(1,2), func(1,2,3)均是合法的

7、。 允许不同的函数有相同的函数名(被称为函数重载)。 “不同的函数”是指形参的类型、数目或返回值的类型不同的函数,比如: int min(int a, int b); double min(double a, double b); int min(int a, int b, int c); double min(double a, double b, double c); 两两不同。,类型转换,We can change! Change what?,C+继承了原有的C语言的隐式类型转换; 所有的类型都可以隐式转换为该类型的引用: int = int &, int * = int * &, st

8、ring = string &; 所有的类型都可以隐式转换为该类型的常量; C风格字符串可以隐式转换为const string; 强制类型转换在C+中有了另一类写法: (type) a xxx_cast a; static_cast实现与C中类型转换相同的功能; const_cast去掉表达式的常量性; 另外还有reinterpret_cast和dynamic_cast,Tags Cloud,Keywords,课程适用性 C+气息 cstdlib namespace int main() bool cin cout new delete string vector 即时声明 初始化方法() 引

9、用 左值和右值 inline 函数重载 形参默认值 类型转换 强制类型转换 Linux对开发人员非常友好; Linux获得了RoboCup 2D开发团队的信赖; RoboCup 2D Server运行在Linux系统上; RoboCup比赛时一般使用Linux系统。 Ubuntu是一个以桌面应用为主的Linux发行版,其名称意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,相当于中华固有的“仁爱”思想; Ubuntu是第一个以“易用性”为最高价值的Linux发行版; 蓝鹰2D组大多数成员在使用Ubuntu。 RoboCup2009使用Ubuntu8.04作为比赛平台。,

10、Ubuntu安装,Installation,安装需要Ubuntu安装光盘和至少5G的空闲空间;,安装之后,Its not over.,新安装的Ubuntu可能有诸多不尽人意之处;请参照Ubuntu 9.04 速配指南: http:/ Ubuntu中文 Wiki能够解决大多数问题:http:/ Ubuntu中文论坛几乎能够解决所有可以解决的问题: http:/ 也欢迎大家直接找我们解决问题; 但是不欢迎你帮我安装吧/你帮我配好吧。,安装编译器和2D Server,Its not over.,看懂这一页需要读过Ubuntu 9.04 速配指南; 安装编译器: sudo apt-get instal

11、l build-essential 进入系统/系统管理/软件源,在软件源对话框中切换到第三方软件页面,点击添加: deb http:/ jaunty main deb-src http:/ jaunty main 安装Server: sudo apt-get update sudo apt-get install rcssserver rcsslogplayer,Eclipse,You are just a rectangle.,但愿大家都已经明白了编译器、编辑器、调试器、IDE的概念。 Eclipse是一个重量级IDE。 安装Eclipse之前,需要先安装JDK: sudo apt-get

12、install sun-java6-jdk 从Eclipse官方网站下载页下载Eclipse IDE for C/C+ Developers (79 MB): http:/www.eclipse.org/downloads/ 注意不要从Ubuntu软件源安装Eclipse。 将下载到的压缩包解压缩到任意位置,运行包内的eclipse。,Tags Cloud,Keywords,Ubuntu安装 rcssserver和rcsslogplayer gcc g+ gdb Eclipse,作业,在这里结束,作业,Homework,USTC OnlineJudge 1000 1001 1003 1004 安装Ubuntu和rcssserver,Soli Deo gloria.,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1