APP下载

从英语学习自然过渡到C 语言学习

2014-11-28庞新法PANGXinfa

价值工程 2014年9期
关键词:词法指针指向

庞新法PANG Xin-fa

(陕西省委党校科技教研部,西安 710061)

(Shaanxi Province Party School of the CPC,Xi'an 710061,China)

1 绪论

现在几乎所有院校都开设了C 语言课程,将其作为学生学习程序设计技术的入门课程,这与C 语言的特点是分不开的。C 语言简洁紧凑、灵活方便、运算符丰富等,不但可以编写系统软件,而且可以根据用户的需要编写出满足用户要求的应用软件,尤其是C 语言具有很好的对计算机的硬件编程能力,单片机编程也常用C 语言。其次很多新型的语言都是衍生自C 语言,如C++,Java,C#,J#,per 等,掌握了C 语言,也就间接地掌握了很多门其它语言,经过深入学习,就可以用这些新型的语言去开发程序。因此,C 语言已成为目前高校学生掌握程序设计的一门基础性语言。因学生有多年英语学习的基础和习惯,故本文从英语、C 语言语法对比的角度,说明如何学好C 语言,以便更好地由英语学习自然过渡到C 语言学习。

2 英语与C 语言的对比

英语 C 语言

文章 程序

文章由段构成(段的集合)程序由函数构成(函数的集合)

段由语句构成 函数由语句构成

语句由语法成份构成 语句由语法成分构成

语句的结束符是句号 语句的结束符是分号

语法成份由单词构成 语法成份由单词构成

单词由字符构成 单词由字符构成

段的书写顺序等于文 函数的书写顺序不等

章的阅读顺序 于程序的执行顺序

文章从第一段开始阅读 程序从主函数开始执行

各段顺次阅读 各函数并非顺次执行

阅读顺序由书写顺序决定 执行顺序由主函数的调用顺序决定

阅读完最后一段标志着全 执行完主函数标志着

文阅读结束 整个程序执行结束

未压缩 是高度压缩的英语

3 单词的种类

3.1 常量(常数)单词 ①10 进制整形常量。词法规则:由0-9 构成,如:123,456。②16 进制整形常量。词法规则:以0x 开始,由0-9,A-F 构成,如:0x123,0x456。③8 进制整形常量。词法规则:以0 开始,由0-7 构成,如:0123,0456。④小数形式实型常量。词法规则:必须有小数点,由0-9 构成,如:123.0,7.456。⑤指数形式实型常量。词法规则:必须有E,由0-9 构成,E 的前面必须有数字,E的后面必须是整数,如:12E3,7.456E-3。⑥字符型常量。词法规则:单引号括起来的单个字符,如:‘1’,‘A’。⑦字符串常量。词法规则:双引号括起来的一串字符,如:“123”,“ABC”。

3.2 名字单词 词法规则:以字母或下划线开始,由字母,数字,下划线构成的串。如:xyz,flag。

3.3 运算符单词 如:+,-,*,/。

4 语法成份-表达式

法规则:由常量,运算符,括号,名字构成,如:123+456+x。

5 语句的种类

5.1 变量定义语句

语法规则:类型名,名字,其中名字起名词作用,类型名起形容词作用。

如:int x;

X 是一个名字,x 是一个整形单元的名字。X 是一个整形变量,整形的x。

5.2 表达式语句

语法规则:表达式后跟分号。

5.3 if 语句

语法规则:if(表达式)语句1;else 语句2;

语义:如果表达式成立则执行语句1,否则执行语句2。

修路时,必须考虑修2 条路,可能今天走A 条,明天走B 条,但每次只能走一条。编程时必须考虑2 种情况,今天运行执行语句1,明天运行执行语句2,但每次只能执行一条。

5.4 while 语句

语法规则:while(表达式)语句;

语义:当表达式成立,重复执行语句,直到表达式不成立。

刚开始学循环,必须对循环进行分解。如以下程序:

6 几个常用语句的英文解释

6.1 int a[10];

a 是一个名字,括号的优先级高,形容词[说明a 是一个数组的名字,形容词10 说明a 是一个由10 个元素构成的数组名,形容词int 说明a 是一个由10 个int 的元素构成的数组名,a 是名词,其余均为形容词。

6.2 int *p;

p 是一个名字,形容词*说明p 是一个指针变量名,形容词int 说明p 是一个指向int 的指针的变量名,*p 是int 型,并非p 是int 型。p 是名词,其余均为形容词。单词p表示p 单元,*p 表示p 所指向的单元,并非p 单元,p,*P表示两个互不相同的单元,形如“张伟”和“张伟他哥”是不同的两个人。

6.3 int *p[10];

p 是一个名字,括号的优先级高,形容词[说明p 是一个数组的名字,形容词10 说明p 是一个由10 个元素构成的数组名,形容词*说明p 是一个由10 个指针的元素构成的数组名,形容词int 说明p 是一个由10 个指向int 的指针的元素构成的数组的名字。p 是名词,其余均为形容词。

6.4 int *p();

p 是一个名字,括号的优先级高,形容词(说明p 是一个函数的名字,形容词*说明p 是一个返回值为指针的函数的名字,形容词int 说明p 是一个返回值为指向int 的指针的函数的名字。p 是名词,其余均为形容词。

6.5 int(*p)[10];

p 是一个名字,圆括号的优先级更高,形容词*说明p是一个指针的名字,形容词[说明p 是一个指向行(数组)的指针的名字,形容词10 说明p 是一个指向10 个元素构成的行(数组)的指针的名字,形容词int 说明p 是一个指向10 个int 的元素构成的行(数组)的指针的名字。p 是名词,其余均为形容词。

6.6 int(*p)();

p 是一个名字,圆括号的优先级更高,形容词*说明p是一个指针的名字,第二个圆括号说明p 是一个指向函数的指针的名字,形容词int 说明p 是一个指向返回值是int的函数的指针的名字。p 是名词,其余均为形容词。

7 函数参数传递

在一些C 语言教材和参考资料中,常常把函数参数传递分为“数值传递”和“地址传递”两种方式,这种概念模糊的分类方法给初学者的理解造成一定程度的困难。实际上C 语言只有“值传递”一种形式,值有可能是数据,有可能是地址,由数据类型加以区分,普通类型变量作为函数参数,其值为数据,指针和数组名作为函数参数,其值为地址。

7.1 普通类型变量作为函数参数 形参,实参是各自单元,互不影响,形参改变,实参不变,传的值是数据,如以下程序:

该程序运行结果是a=10,b=5,a,b 并未交换,只是x,y交换。

7.2 指针类型变量作为函数参数 形参,实参是各自单元,互不影响,故形参改变,实参不变,传的值是地址,但形参所指向单元,实参所指向单元是同一个单元,故形参所指向单元改变,实参所指向单元随之改变,形如父亲张伟有两个儿子,一个是张强,一个是张刚,张强和张刚是两个不同的人,但张强张刚的父亲是同一个人,张强的父亲工资涨100 元,张刚的父亲随之涨100 元,张强工资涨100 元,张刚的工资不变。如以下程序:

该程序运行结果是a=5,b=10,a,b 交换,*pa,*pb 交换,*x,*y 交换,但x,y 并未交换,pa,pb 并未交换。

8 结束语

学习C 语言与学习英语一样,必须掌握词法规则,语法规则,语义规则,然后用此三个规则组合程序即可。

[1]苏丹丹,孟祥锐,褚丽娟.高校非计算机专业C 语言程序设计课程四位一体教学模式研究[J].长春师范学院学报(人文社会科学版),2008(10).

[2]李娅,张建勋,曾庆森.计算机软件技术基础教学的探讨与实践[J].重庆工学院学报(自然科学版),2007(03).

[3]张仿,卢继勇,曹慧英.“启发式”教学法与C 语言教学[J].重庆邮电学院学报(社会科学版),2004(S1).

猜你喜欢

词法指针指向
科学备考新指向——不等式选讲篇
把准方向盘 握紧指向灯 走好创新路
谈对外汉语“词法词”教学
基于改进Hough变换和BP网络的指针仪表识别
ARM Cortex—MO/MO+单片机的指针变量替换方法
2010年高考英语“相似”考题例析