Perl和C++的上下文

2009年11月15日 | 分类: 计算机技术 | 标签:

Perl里面用到的上下文比较多:变量到底是赋了什么值,要看是处于标量还是列表的上下文。学C++的人刚接触Perl,会对里面频繁使用的上下文感到迷惑。

其实哥们不用迷惑,上下文在C++里面也不是什么稀奇的。星号*有时候是乘号,有时候又是对指针的解引用。到底是什么,这也取决于上下文。不过呢,没有人对星号*到底是什么意思感到迷惑,因为只要知道规则就行了。

Perl里面只是用上下文的地方比较多罢了,但是只要你熟悉了规则,也没什么大不了,反倒会感到很方便。毕竟人的自然语言是非常依赖上下文的。Larry Wall又是一个语言学家,所以不免会将自然语言的东西加入计算机语言。

C++和Perl面向计算机的层次不同,所以采取不同的策略是很正常的。一个语言的规则,怎么都好说,习惯成自然,但是就怕自身不一致,这时候就得靠死记硬背了。比如:C++里面,int a,b;表示声明两个整型变量a和b,int* a;表示一个整型指针a,int*是一种类型,这好理解,可是,为什么int* a,b;里面的b不是指针而是int呢?我觉得这个地方是不好理解,只有硬记。

  1. 华仔
    2009年12月1日00:41

    int *a,b的问题
    int是类型符,*是申明符,int *本身并不是一个类型,除非你用typedef int * INT
    INT a,b 这样两个变量都是int *

  2. 2009年12月30日15:01

    哦,原来还有申明符,学习了