资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
VB 与 C 语言的对照总结崔欢编辑西南石油学院 第 1 页共 15 页作者小序:作者小序:作者小序: 该如何介绍下面这篇文章呢?它既不是 VB 也不是 C 语言。而是一篇系统总结 VB 与 C 语言之间的区别与联系的文章!由于本人是在学习了 VB 的基础上再学习 C 语言的,所以 经历了一段很痛苦的过渡时期。记得当初别人问我 VB 问题,我连最基本的数组 a(10)到 底是在 a(9)结束还是在 a(10)结束都搞不清了!VB 和 C 语言完全混成了一锅粥。至于 C 中的字符、字符串、字符数组等概念更由于 VB 的知识根深蒂固而闹不清楚。记得有次 上C 语言程序设计的选修课上,任馨老师曾说“一般学了 VB 再学习 C 语言都要经历 一段过渡时期” ,我听了深有感触。正是由于 VB 与 C 语言有着很多区别和联系,所以我觉 得很有必要系统总结一下这方面的知识。 可是在网上,我用百度和 Google 搜索,几乎没有这方面的总结,突然一种前无古人 的使命感油然而生_正好国庆长假有了时间,我列表总结如下。由于我总结下表主要是为 了学习这门语言的主干,并准备等级考试,所以与很偏的与考试内容关系不大的知识,即 大纲和等级考试都不涉及的我就没有看书总结。 表中内容很多是相关书籍中的原话 (本人自知水平有限所以不敢杜撰) ,但有些是我 对知识的总结,所以由于本人水平的限制和时间的仓促,里面肯定有错误之处,真诚希望 大家向我提出宝贵意见,大家共同使这篇文章臻于完善! 崔 欢 2005 年 10 月 1 日至 5 日 于西南石 油学院火箭楼VBVBVB 与与与 C C C 的对照总结的对照总结的对照总结 作者小序作者小序作者小序 一基本知识一基本知识一基本知识 二常二常二常量量量与与与变变变量量量 三条三条三条件件件选选选择择择语语语句句句 四循四循四循环环环控控控制制制 五数组五数组五数组 六过程六过程六过程 (函数)(函数)(函数) 七指针 八文件九参考文献九参考文献九参考文献 十联十联十联系系系作者作者作者正文:正文:正文: 一基本知识一基本知识一基本知识 表格左边是 VB 内容,右边是 C 语言的内容,下同。基本认识VB 是面向对象的,基于 windows 操作平台 下的可视化编程语言。用户可以用鼠标编写 代码。C 语言是面向过程的程序语言。 Turbo C 是基于 DOS 平台的 C 编译系统。用 户无法使用鼠标块操作。 Ctrl+KB 块头标记; Ctrl+KK 块尾标记;Ctrl+KC 块复制; Ctrl+KH 取消;Ctrl+KV 块移动快捷键本本本本文文文文导导导导航航航航VB 与 C 语言的对照总结崔欢编辑西南石油学院 第 2 页共 15 页打开工程 Ctrl+O 新建工程 Ctrl+N 保存 Form1:Ctrl+S 退出:Alt+Q 运行:F5装载文件(Load ):F3 Alt+F5: 查看结果 保存(Save): F2 激活主菜单:F10 退出 TC 返回 DOS(Quit): Alt+X Ctrl+F9:编译+连接+运行 Esc: 返回上一级菜单运算符 算术运算符(幂 -取负 *乘法 /浮点 除法 整数除法 Mod 取模 +加法 -减 法) 字符串连接运算符( 直接说明结构变量。struct 成员表列 变量名表列;易混淆语句用 DefType 语句定义变量类型: 格式:DefType 字母范围 注意:Def 和类型标志之间不要有空格。字用 typedef 声明新的类型名来代替已有的类 型名。 实例:typedef int INTEGER;VB 与 C 语言的对照总结崔欢编辑西南石油学院 第 4 页共 15 页母范围用“字母字母”的形式表示。 实例:DefDbl A-B, X-Z 把以字母 A、B、X、Y、Z 开头的所有变量名定义为双 精度类型。typedef float REAL; 则:以下两行等价:a)int i, j; float a, b; b)INTER|GER i, j; REAL a, b; 用 typedef 亦可声明结构体类型。注释语句注释部分对程序的运行不起作用。 VB 中的注释是“Rem”或一个撇号“ ” 。注释部分必须用“/*”和“*/”括起来。 “/*”和“*/”必须成对地出现, “/”和 “*”之间不可有空格。可多行注释。程序语句的书写格式在一般情况下,程序语句要按照“一行一句, 一句一行”的规则书写。 但 VB 允许使用复合语句行,即把几个语句 放在一行中,各语句之间用冒号(:)隔开。 在输入程序时,也可以通过续行符把程序分 别放在几行中。VB 中续行符是下划线(_) 。 注意:续行符与它前面的字符之间至少要有 一个空格。C 程序书写格式自由,一行内可以写几个语 句,一个语句可以分写在多行上。C 程序没 有行号。标点一般在一行输入一条语句,每条语句行以回 车键结束。Print 方法: 格式: 对象名.Print表达式表 ,|; 使用逗号:标准输出格式,又称分区输出版 式,以 14 个字符宽度划为一个区段,每个 数据项位置占一个区段。 使用分号:以紧凑输出格式输出,每个数值 数据前面有一个符号位,后面有一个空格。每个语句和数据定义的最后必须有一个分号。分号是 C 语句的必要组成部分。分号不可少。 即使是程序中最后一个语句也应包含分号。关于标点的几个注意事项注意:参数缺省时逗号不可丢。 MsgBox ( “除数为 0”, , “运算提示”)提示信息 图标按钮类型值缺省 标题注意:不要在不该加分号的地方加分号。在 if、for、while 语句中,不要画蛇添足多 加分号。 错误:if (ab);for (; ; ); while (i=60 , “合格” , “不合格”)等价条件运算符,是 C 语言中唯一的一个三目运 算符。条件表达式的一般形式为: 表达式 1 ?表达式 2 :表达式 3 实例:max=(ab)?a:b;Printf(“%sn”,G=60?“pass”,“not pass”);多分支选择语句格式:Slect Case 测试表达式Case 条件 1语句块 1Case 条件 2语句块 2Case Else语句块 n End Select 条件的表示形式有三种: 1)简单常量(各常量之间用逗号分隔) ; 2)测试范围。用“值 1 To 值 2”的形式; 3)比较范围:用“Is 关系表达式”的形式。实例: Case 2,5,10 To 20, Is50(三种形式可混 用) 注意:当用关键字 Is 定义条件时,只能是 简单条件,不能是逻辑运算符将两个或多个 简单条件组合在一起。 例如 Case Is10 And Is y , x , y) End Function实例:printstar ( )main ( )int max (int x, int y) float add (float x, float y)int max (int x, int y) int z; z = x y ? x : y ; return(z); 调用格式Sub 过程的调用格式: Call 过程名(实参表) 过程名 实际参数 Function 过程的调用格式: 函数过程名(实参表) 实例:Call test (n,10)Test n,10 Comb = fact(n)/(fact(m)*fact(n-m)调用 Sub 过程相当于执行一个语句,不直接 返回值;而调用 Function 过程要返回一个 值,因此可以像内部函数一样在表达式中使 用。由 Function 过程返回的值赋给了“过 程名” 。函数调用的一般形式为:函数名(实参表列) ; 按函数在程序中出现的位置来分,可以有以 下三种函数调用方式: 函数语句。把函数调用作为一个语句, 这时不要求函数带回值,只要求函数完 成一定的操作(类似于 VB 中的 Sub 过 程调用) ; 函数表达式。这时要求函数带回一个确 定的值以参加表达式的运算。 (类似 VB 中 Function 过程的调用) ; 函数参数。函数调用作为一个函数的实 参。函数调用作为函数的参数,实质上 也是函数表达式形式调用的一种,因为 函数的参数本来就要求是表达式形式。 实例:printstar ();c=2*max (a, b);m=max (a, max (b, c); printf (“%d”, max (a, b); 实参和行参之间的传送在 VB 中参数传送有两种方式:“传值”和 “传地址” 。 传值:单向传送。行参的改变不影响实参的 值。 (类似于 C 语言实参和行参的传送。 ) 传地址:行参与实参共用一个地址,共享一 个存储单元。行参的改变会导致实参的值也 跟着变化。 (类似 C 语言指针的概念) 举例: Private Sub Command1_Click() Dim a As Integer, b As Integer a = Val(InputBox(“请输入字母 a 值“) b = Val(InputBox(“请输入字母 b 值“) If a b Then Call swap(a, b) Print “max=“; a, “min=“; bC 语言中实参和行参之间的传递是单向的 “值传递”方式。 若想通过调用函数用行参来改变实参的值, 必须通过用指针作为参数来实现。 举例: swap(int x,int y) int temp; temp = x; x = y; y = temp;main() int a,b; scanf(“%d%d“,VB 与 C 语言的对照总结崔欢编辑西南石油学院 第 13 页共 15 页End Sub 注意区别Sub swap(x As Integer, y As Integer) temp = x x = y y = temp End Sub 输入:4 9 结果:max=9, min=4if (ab)swap(a,b); printf(“max=%d,min=%d“,a,b); getch(); 输入:4 9 结果:max=4 , min=9返回值研究函数过程(Function 过程)有且只有一个返 回值。 子程序过程(Sub 过程)不直接返回值。但 可以通过在 Sub 语句的参数表中增加形参的 方式来带回返回值。 由于一个 Function 过程只能有一个过程名, 也因此只能带回一个返回值。而 Sub 过程通 过增添参数的方式可以带回任意多个返回值。因此可以说,凡是能够用 Function 过程实 现的程序,都可以用 Sub 过程来实现。由于 返回值个数的限制导致 Function 过程不能 实现的可以通过 Sub 过程来实现。 因此 Sub 过程的使用范围比 Function 过程 更广泛。 (其实这两种过程都可以利用全局变量带回 多个返回值。 )函数的调用可以(而且是只可以)得到一个 返回值(即函数值) 。 有时可以利用全局变量增加与函数联系的 渠道,从函数中得到一个以上的返回值。 可以运用指针变量做参数,得到多个变化 了的值。详见谭浩强编著.C 程序设计(第 二版)第 210 页例 10.4。七指针关于指针VB 中没有指针变量。但 VB 中许多内容都无 形中涉及了指针的概念。 比如: 数组的赋值“b=a”语句。 详见我校 VB 课本黎明,刘成安编著.Visual Basic 程序设计教程.第 100 页 6.4.4
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号