知者无忧

NOThing Is Impossible! —— 原创文章,谢绝转载!

RSS Feed

Perl和C++的上下文

3 Comments
Posted by on 2009-11-15 at 22:43

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

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

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

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

相关日志

  • 暂无相关日志

Filed under 计算机技术
You can leave a comment, or trackback from your own site.

3 Comments

  • On 2009-12-01 at 00:41 华仔 said

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

    回复

    • On 2009-12-30 at 15:01 zhang said

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

      回复

  • On 2010-06-19 at 11:25 yjwan said

    int *a,b
    实际上是int *a;
    int b;

    定义的int *a; 意思是a必须取* 那么才能得到一个int的值 那么反推过来 a是什么东西 肯定是指针了

    所以这句话就是定义一个指针

    以后用指针a的时候就不用加*

    回复

发表评论

您的电子邮箱不会被公开。 标记为 * 的区域必须填写

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

功能

  • 登录
  • 日志 RSS
  • 评论 RSS
  • 中国博客网