导航:首页 > 编程语言 > 怪异的编程语言

怪异的编程语言

发布时间:2022-07-17 10:10:07

A. System.err 和System.out的怪异运行!

大多数操作系统都有三个标准文件描述符:标准输入,标准输出,标准出错。

三个操作系统的文件描述符映射到编程语言的标准库中,往往加了一层包装,但是名字通常还是叫标准输入,标准输出,标准出错。

在其它语言中的一般写法是:stdin,stdout,stderr(有的语言里大写,有的语言里小写)。对应java中的System.in,System.out,System.err。

在语言层面的实现三个文件描述符都是可以重定向的(只要你想)。但是一般而言,如果你在unix shell或windows command line中使用管道或重定向,则只是针对标准输入和输出。

另外,标准输出和标准出错的一个区别是,标准输出往往是带缓存的,而标准出错没有缓存(默认设置,可以改)。所以如果你用标准出错打印出来的东西可以马上显示在屏幕,而标准输出打印出来的东西可能要再积累几个字符才能一起打印出来。如果你在应用中混用标准输出和标准出错就可能看到这个问题。

总的来说,System.out用于正常的输出,也就是程序真正想输出的内容。而System.err用于出错信息的输出,也就是你本来不期待看到的东西。

因此,System.err打出来的信息常常会跑到System.out信息的前面去。。。

B. 编程语言的学习方法

首先:我学编程已经有快两年的时间了,我的专业和计算机编程一点也沾不上边(图书馆学专业本科)。从最初的C-〉C++-〉VC++6.0-〉VC++.NET托管编程 + SQL Server
要学编程不是一朝一夕的事,不知道你有多少的时间和毅力,编程要学到通最重要的就是方式就是自学,老师教不了多少东西,如果一个老师能够让你入门一门语言就已经是很不错了。
个人觉得最好是从C/C++学起当你对C++很懂的时候,就可以学习VC++了,VC++是学习Windows最好的编程语言,如果你VC++学得通了Windows系统编程就不再话下了.如果这时候比如要改行到C# / Java 这些对你来说都是几周就能够上手的事.而且学习C++有一个很好的地方就是C++的书籍非常的多,经典书籍也很多你学习起来会给你非常多的帮助.
当然如果你选择了C++你一定要有毅力与恒心,现在很多的院校都是直接开C# 而不是开VC++课程就是因为VC++的难度大,正式因为难度大就更需要毅力了!如果你没有这个就最好不要选择VC++,还有如果你不是想把编程当作未来的工作方向建议不要学VC++,像开发什么网站的旧直接去学JAVA或C#/ASP就好了,容易上手难度也不会那么大,这时我个人的经历.
下面赋上我保存的一个文章,如果你准备学期VC++,可你看看:
学好VC++的十大良好习惯

欢迎光临阿蒙的VC++专业技术网站:http://www.vchome.net/

每到年底各大媒体就争先恐后热火朝天地搞总结,什么十大人物,十大品牌,十大美女,十大帅哥等等五花八门乱七八糟的让人充满好奇充满怀疑,这事确实让人有点郁闷,就如同男足国家队的国产教练如沈墙扶们每一次踢球失败后都要说这么一句:我们回去后要好好总结,下次会打得更好! 这话听了几十年了,耳朵都生虫了,但还是无法看到中国猪球队有象人样的表现.因此,总结在某一程度上来说只不过是一种形式罢了,总结不代表就能改过原有的不足,也不代表就能进步了,甚至有点俗不可耐,尽管如此,阿蒙亦明知故俗,前人说过了入乡了就要随俗,因此你生活在这种环境里,你无法对这些无聊无趣的东东置之不理,除非你是天才,天才往往在非天才的人看来是很怪异的,处处与现实格格不入,可阿蒙不是天才,所以还得赶快总结,要不就离题,又被大家骂了,:)

(一)充分利用MSDN,因为我个人觉得它胜过任何一本编程参考书;

MSDN是 Microsoft 当前提供的有关编程信息的最全面的资源,它包含微软最新的技术数据库,加上易学易用的全文检索功能,让您迅速找到任何您需要的技术参考数据,让您随时拥有与全世界菁英同步的技术,掌握最丰富的程序开发资源。我经常收到很多朋友的EMAILS,他们所提的问题往往都非常的简单,MSDN完全可以解答这些问题,但他们好象不太喜欢用,这是让我郁闷的地方,是因为英文不好呢,还是没有学会充分利用各种资源来解决问题的方法呢?

(二)提高英文水平,养成多上英文网站多看英文资料多买老外原版英文书;

有关程序员与英文水平的讨论已太多太多, 我个人认为要成为程序员,高中的英语水平够了,甚至不懂英语的一些人,也同样可以成为较好的程序员,因为开发工具的发展将是越来越傻瓜,但如果你是仅仅满足于能运用某种工具开发某个软件模块,那是没话说了.真正热衷技术肯干钻研乐于接受挑战的程序员是不满足于现状的,他们总感觉有太多的未知,于是总在不停地学习,如今信息技术发展得太快,而大部分的技术最先出现的时候都是英文版本的,要几个月或者几年以后才有中文版本的书出来,因此要想跟上步伐,一定要努力提高自己的英文水平,这样才能同步跟上信息技术。你可能担心自己的英语水平不行,没关系,刚开始多查字典,"万事开头难",必须有持之以恒的精神,不久你就会发现计算机英语其实很容易的。何况很多

英文技术站点确实比国内做得好啊!比如http://www.codeguru.com,http://www.codeproject.com, http://www.programmersheaven.com 等等.

(三)加强自我管理,善于作自我总结,分析自已的优点及缺点。

中国境内百分之八十以上的领导人在百分之八十以上的场合的讲话中都有类似的观点,所以在这里我是不多说了,反正这一条用在什么行业什么地方都不会有错的,人生最大的敌人不是就是自已吗?管好自已认清自已,那还有什么搞不定的?

(四)养成良好的文档习惯

程序员大多都不喜欢写文档,我以前也是特讨厌,在我的思想里,所谓的文档就是一些废话,一句话硬是用十句话来代替的无聊透顶,就如同部分中文系男生的爱情表白,明明就是"我爱你"三个字,他硬是把月亮啊太阳啊大海啊高山啊石头啊天使啊乱七八糟的都拉上关系了,尽管听起来浪漫,但在我认为不实用,:), 甚至太肉麻了,一个男子汉干嘛这么罗里罗嗦的......良好的文档是正规研发流程中非常重要的环节,一个好的程序是先写好设计文档再进行编程的,在设计文档的指导下,才能写出安全的代码。如果你不写文档,一开始就写程序,这样你就不会按已设计好的路线走,而是想到哪写到哪。小功能还好说,要是大功能,就容易混乱甚至失控.那么如何写文档呢?其实我认为没有统一的标准,虽然国家及一些NB的人总结了很多的模板,但每个人的习惯不同,如果你不加以修改或创新,就套用某个标准,我相信写起来会很吃力及说不清的难受,因此我觉得只要能将你的设计思想及实现算法或步骤描述清楚就是好的文档,我强烈建议广大程序员朋友们在写文档时要善于用图表来说明你的思想,我们不是作家,也可能作文都经常性地不及格,写出五官端正的文章对我们来说可能不容易啊!好好地利用VISIO,ROSE或别的工具来表达你的思想吧!

(五)代码风格要规范,严谨,效率要高。

这个不用说了,所以一定要记住了!不过,这一点有时可能与人的性格有关,如果你是经常丢三落四经常胡子长长经常钮扣扣错经常吃个快餐要一个小时的人,那你在CODING的时候可千万要注意了,CODING是CODING,生活是生活,不要写出的程序也是那样就不好了!

(六)掌握好跟踪调试技巧.

跟踪调试程序是一件繁琐而又复杂的事情,所以掌握必要的调试策略及技巧却可以使这些工作变得轻松起来.强烈建议你去看一下老美Everett N.McKay及Mike Wooding写的书<<Debugging Windows Programs>>,你一不定受益匪浅.

(七)养成自我测试的习惯

测试工作应由测试工程师来做,但在你写完一个模块或一个软件时,还是要自已先测试一下,保证不要出现一些低级的错误,何况这些错误让测试工程师看到了,狂扁你一顿,你很没FACES的.

(八)善于交流善于沟通,特别是经常与一些高手交流一下学习的心得体会;

有人说,程序员的性格大多内向不喜欢说话,其实是有些误会了,不是不喜欢而是话不投机,我的脑袋一天到晚都在不停地转,函数,数据,算法啊充满了我的世界,我那还有时间与你谈一些无聊的话题,话要找对人了,才容易谈下去,书上说过"听君一席话,胜读十年书",你要找的就是这种豁然开朗!现在技术的论坛越来越来,这将成为程序员交流一个重要的地方,也有人说:"读君一长贴,胜读十年书",:)

(九)阶段性地做一下专题总结

知识要温故而知新,因此我建议程序员要养成阶段性地做专题总结的习惯,比如你这个月学习或在做与多线程有关的模块或项目,那么在你做完后,你就可以好好地总结一下所有与多线程相关的技术,包括理论知识,实践方法以及各种技巧及优秀文章等等,这对你各种能力的提高将有很大的帮助,你试过了吗,如果没有,那就快点行动吧!

(十)要有持之以恒的精神

这是废话,因为我揍不齐十大,所以将它也算上,中国自古以来喜欢号召大众学习某种精神,比如马克思的,列宁的,毛泽东的,邓小平的,雷峰的等,这些精神使社会更安定人民生活更美好,那么程序员要有什么样的精神呢?我不是我说了就算了的,我只是想说明要学好任何一门技术,最好要有持之以恒精益求精的精神,特别是学一些比较抽象比较难的技术,比如VC++,我想它应比别的开发语言都要难学些,或许你已经开始了两年了,但感觉还是不爽仿佛也没掌握什么,这个时候你除了思考一下你的学习方法以外,还必须坚定你的目标及信念!

C. 如何学习编程语言

个人大学本科学的是软件工程,学过几门编程语言(C/C++/php/Java/Python),下面结合一下个人的学习经验来谈一下这个问题。

我觉得想要学好一门编程语言,需要经过如下几个步骤:

其实除非这门语言特别怪异,比如LISP,大多数语言的基本语法都是大同小异的。在初次接触到一门新的编程语言时,我们需要快速的掌握这门语言的基本语法,比如变量声明、if条件、循环条件、数组、字符串、最常用的函数等。

如何快速掌握基本语法呢?我一般会上网找一些快速入门的教程,这些教程最好伴随一些简单的练手例子。

任何一门语言都有自己与众不同的地方,很可能这种语言的一些用法与自己的经验相悖,那么我们如何快速的掌握这门语言有哪些坑呢?我自己的做法是上网搜这门语言的面试题。面试题一般包括这门语言的常见用法技巧、坑。通过练习面试题,我们能get到语言的坑,而不是在实际的项目中踩坑。

上面两种学习方法,有一个很明显的缺点,就是我们没有对这门语言形成一个知识体系,只是类似于打补丁的方式,学习的东西浮于表面。想要系统的学习这门语言,我们需要买一本关于这门系统讲解这门语言的书籍。这样有2个好处:第一个是进一步拓展你的知识面,第二个是利于你语言知识结构的形成。

当然,如果不想买书的话,我们可以看这么语言的手册,手册上也有很多关于这门语言的技巧和注意点。如果英语好的话,最好看英文版的手册,哈哈。

下面是我觉得比较好的系统学习语言的书籍:

C:C程序设计语言


光看书是不能学好一门编程语言的。看书学到的知识只是在你的脑子里留下了一个初步的印象,但是没有深入骨髓,没有自己的理解。所以为了对知识有自己的深入理解,我们需要做一两个实际的小项目,这个项目最好是能解决某一类问题的,不能是那种做出来没有实际意义的项目。

如果可以的话,最好项把目放在github上开源。如果有人用的话那就更好了,大家会看你写的代码,甚至会和你进行讨论,这个时间段将是你提高最快的时候,保不准你的项目就是下一个Linux呢,哈哈。

D. 碰见一个怪异的C语言编程题 关于字符串操作

如果p指向‘\0’,而且n也不代表字符串长度.
唯一的办法就是指针--,直到程序崩溃,就可以找到起始位置,可能也找不到。
我见过这个题目,但题目没说指针指向‘\0’;

E. 你接触过的编程语言里有哪些你觉得很奇怪的功能

reMorse 语言旨在使代码看起来像莫尔斯码……(why?
reMorse 包含四条指令。dash( - )和 dasher( - 后跟空格)指令分别从七个操作的循环列表中选择下一个和上一个操作。dot(。)和 dotty(。后面跟一个空格)分别进行操作和正在选择的操作的相反操作。

F. 会那些算法,就能C语言编程了吗谁能告诉我为什么我看到的算法怪异的编程跟系统都不搭边呢

那是因为别人帮你做好了各种类,通过继承类能实现各种功能,但是底层的东西是别人帮你做好的,底层就可能会用到这些算法。

G. 有没类似php语法的编程语言 java/c语言C++/C#

去认真学就好,无论学一门还是多学。
像C#,也可以在Linux下开发,Mono框架也非常强大了,使得ASP.net方面几乎100%兼容
Winform也大半兼容了。也有特有GTK框架,开发桌面、网站完全够。
不声明类型,也是有利有弊的。对于纯文本的环境常常便利一些。
像C#语言,以前要string t="hello world"现在新引入了var t="hello world";这样自动变量类型的写法。
C/C++肯定也可以返回数组,通常根本不用返回,传2个地址进去就行了
foo(int *a, int *l); //指针a代表数组,指针l代表数组长度,在函数中改变内容,不需要返回。

语言都有优点和缺点的。
像js,没有真正意义整数运算,都用64bit的double浮点数进行运算,会导致数值编码计算性能降低太多。缺乏对utf8以外编码的支持,缺乏整数又让任何编码效率很低
PHP的整数,不支持无符号位移,使得手动实现某些常用算法,比如写个CRC32编码,TEA编码变得非常怪异和性能降低。100层的递归限制等等。只适合写组合流程,而想实现常用编码算法和创造新编码算法将很被约束。

总之认真去学,环境下遇到问题肯定就近也有解决方法。

H. 在《软件故事》中说Lisp想比FORTRAN是个巨大的进步。请问,Lisp比FORTRAN高级在哪

一、

如果我们把流行的编程语言,以这样的顺序排列:Java、Perl、Python、Ruby。你会发现,排在越后面的语言,越像Lisp。Python模仿Lisp,甚至把许多Lisp黑客认为属于设计错误的功能,也一起模仿了。至于Ruby,如果回到1975年,你声称它是一种Lisp方言,没有人会反对。编程语言现在的发展,不过刚刚赶上1958年Lisp语言的水平。

二、

1958年,John McCarthy设计了Lisp语言。我认为,当前最新潮的编程语言,只是实现了他在1958年的设想而已。

这怎么可能呢?计算机技术的发展,不是日新月异吗?1958年的技术,怎么可能超过今天的水平呢?

让我告诉你原因。

这是因为John McCarthy本来没打算把Lisp设计成编程语言,至少不是我们现在意义上的编程语言。他的原意只是想做一种理论演算,用更简洁的方式定义图灵机。

所以,为什么上个世纪50年代的编程语言,到现在还没有过时?简单说,因为这种语言本质上不是一种技术,而是数学。数学是不会过时的。你不 应该把Lisp语言与50年代的硬件联系在一起,而是应该把它与快速排序(Quicksort)算法进行类比。这种算法是1960年提出的,至今仍然是最 快的通用排序方法。

三、

Fortran语言也是上个世纪50年代出现的,并且一直使用至今。它代表了语言设计的一种完全不同的方向。Lisp是无意中从纯理论发展 为编程语言,而Fortran从一开始就是作为编程语言设计出来的。但是,今天我们把Lisp看成高级语言,而把Fortran看成一种相当低层次的语 言。

1956年,Fortran刚诞生的时候,叫做Fortran I,与今天的Fortran语言差别极大。Fortran I实际上是汇编语言加上数学,在某些方面,还不如今天的汇编语言强大。比如,它不支持子程序,只有分支跳转结构(branch)。

Lisp和Fortran代表了编程语言发展的两大方向。前者的基础是数学,后者的基础是硬件架构。从那时起,这两大方向一直在互相靠拢。 Lisp刚设计出来的时候,就很强大,接下来的二十年,它提高了自己的运行速度。而那些所谓的主流语言,把更快的运行速度作为设计的出发点,然后再用超过 四十年的时间,一步步变得更强大。

直到今天,最高级的主流语言,也只是刚刚接近Lisp的水平。虽然已经很接近了,但还是没有Lisp那样强大。

四、

Lisp语言诞生的时候,就包含了9种新思想。其中一些我们今天已经习以为常,另一些则刚刚在其他高级语言中出现,至今还有2种是Lisp独有的。按照被大众接受的程度,这9种思想依次是:

1. 条件结构(即"if-then-else"结构)。现在大家都觉得这是理所当然的,但是Fortran I就没有这个结构,它只有基于底层机器指令的goto结构。

2. 函数也是一种数据类型。在Lisp语言中,函数与整数或字符串一样,也属于数据类型的一种。它有自己的字面表示形式(literal representation),能够储存在变量中,也能当作参数传递。一种数据类型应该有的功能,它都有。

3. 递归。Lisp是第一种支持递归函数的高级语言。

4. 变量的动态类型。在Lisp语言中,所有变量实际上都是指针,所指向的值有类型之分,而变量本身没有。复制变量就相当于复制指针,而不是复制它们指向的数据。

5. 垃圾回收机制。

6. 程序由表达式(expression)组成。Lisp程序是一些表达式区块的集合,每个表达式都返回一个值。这与Fortran和大多数后来的语言都截然不同,它们的程序由表达式和语句(statement)组成。

区分表达式和语句,在Fortran I中是很自然的,因为它不支持语句嵌套。所以,如果你需要用数学式子计算一个值,那就只有用表达式返回这个值,没有其他语法结构可用,因为否则就无法处理这个值。

后来,新的编程语言支持区块结构(block),这种限制当然也就不存在了。但是为时已晚,表达式和语句的区分已经根深蒂固。它从Fortran扩散到Algol语言,接着又扩散到它们两者的后继语言。

7. 符号(symbol)类型。符号实际上是一种指针,指向储存在哈希表中的字符串。所以,比较两个符号是否相等,只要看它们的指针是否一样就行了,不用逐个字符地比较。

8. 代码使用符号和常量组成的树形表示法(notation)。

9. 无论什么时候,整个语言都是可用的。Lisp并不真正区分读取期、编译期和运行期。你可以在读取期编译或运行代码;也可以在编译期读取或运行代码;还可以在运行期读取或者编译代码。

在读取期运行代码,使得用户可以重新调整(reprogram)Lisp的语法;在编译期运行代码,则是Lisp宏的工作基础;在运行期编 译代码,使得Lisp可以在Emacs这样的程序中,充当扩展语言(extension language);在运行期读取代码,使得程序之间可以用S-表达式(S-expression)通信,近来XML格式的出现使得这个概念被重新"发 明"出来了。

五、

Lisp语言刚出现的时候,它的思想与其他编程语言大相径庭。后者的设计思想主要由50年代后期的硬件决定。随着时间流逝,流行的编程语言不断更新换代,语言设计思想逐渐向Lisp靠拢。

思想1到思想5已经被广泛接受,思想6开始在主流编程语言中出现,思想7在Python语言中有所实现,不过似乎没有专用的语法。

思想8可能是最有意思的一点。它与思想9只是由于偶然原因,才成为Lisp语言的一部分,因为它们不属于John McCarthy的原始构想,是由他的学生Steve Russell自行添加的。它们从此使得Lisp看上去很古怪,但也成为了这种语言最独一无二的特点。Lisp古怪的形式,倒不是因为它的语法很古怪,而 是因为它根本没有语法,程序直接以解析树(parse tree)的形式表达出来。在其他语言中,这种形式只是经过解析在后台产生,但是Lisp直接采用它作为表达形式。它由列表构成,而列表则是Lisp的基 本数据结构。

用一门语言自己的数据结构来表达该语言,这被证明是非常强大的功能。思想8和思想9,意味着你可以写出一种能够自己编程的程序。这可能听起来很怪异,但是对于Lisp语言却是再普通不过。最常用的做法就是使用宏。

术语"宏"在Lisp语言中,与其他语言中的意思不一样。Lisp宏无所不包,它既可能是某样表达式的缩略形式,也可能是一种新语言的编译器。如果你想真正地理解Lisp语言,或者想拓宽你的编程视野,那么你必须学习宏。

就我所知,宏(采用Lisp语言的定义)目前仍然是Lisp独有的。一个原因是为了使用宏,你大概不得不让你的语言看上去像Lisp一样古 怪。另一个可能的原因是,如果你想为自己的语言添上这种终极武器,你从此就不能声称自己发明了新语言,只能说发明了一种Lisp的新方言。

我把这件事当作笑话说出来,但是事实就是如此。如果你创造了一种新语言,其中有car、cdr、cons、quote、cond、 atom、eq这样的功能,还有一种把函数写成列表的表示方法,那么在它们的基础上,你完全可以推导出Lisp语言的所有其他部分。事实上,Lisp语言 就是这样定义的,John McCarthy把语言设计成这个样子,就是为了让这种推导成为可能。

六、

就算Lisp确实代表了目前主流编程语言不断靠近的一个方向,这是否意味着你就应该用它编程呢?

如果使用一种不那么强大的语言,你又会有多少损失呢?有时不采用最尖端的技术,不也是一种明智的选择吗?这么多人使用主流编程语言,这本身不也说明那些语言有可取之处吗?

另一方面,选择哪一种编程语言,许多项目是无所谓的,反正不同的语言都能完成工作。一般来说,条件越苛刻的项目,强大的编程语言就越能发挥 作用。但是,无数的项目根本没有苛刻条件的限制。大多数的编程任务,可能只要写一些很小的程序,然后用胶水语言把这些小程序连起来就行了。你可以用自己熟 悉的编程语言,或者用对于特定项目来说有着最强大函数库的语言,来写这些小程序。如果你只是需要在Windows应用程序之间传递数据,使用Visual Basic照样能达到目的。

那么,Lisp的编程优势体现在哪里呢?

七、

语言的编程能力越强大,写出来的程序就越短(当然不是指字符数量,而是指独立的语法单位)。

代码的数量很重要,因为开发一个程序耗费的时间,主要取决于程序的长度。如果同一个软件,一种语言写出来的代码比另一种语言长三倍,这意味 着你开发它耗费的时间也会多三倍。而且即使你多雇佣人手,也无助于减少开发时间,因为当团队规模超过某个门槛时,再增加人手只会带来净损失。Fred Brooks在他的名着《人月神话》(The Mythical Man-Month)中,描述了这种现象,我的所见所闻印证了他的说法。

如果使用Lisp语言,能让程序变得多短?以Lisp和C的比较为例,我听到的大多数说法是C代码的长度是Lisp的7倍到10倍。但是最 近,New Architect杂志上有一篇介绍ITA软件公司的文章,里面说"一行Lisp代码相当于20行C代码",因为此文都是引用ITA总裁的话,所以我想这 个数字来自ITA的编程实践。 如果真是这样,那么我们可以相信这句话。ITA的软件,不仅使用Lisp语言,还同时大量使用C和C++,所以这是他们的经验谈。

根据上面的这个数字,如果你与ITA竞争,而且你使用C语言开发软件,那么ITA的开发速度将比你快20倍。如果你需要一年时间实现某个功能,它只需要不到三星期。反过来说,如果某个新功能,它开发了三个月,那么你需要五年才能做出来。

你知道吗?上面的对比,还只是考虑到最好的情况。当我们只比较代码数量的时候,言下之意就是假设使用功能较弱的语言,也能开发出同样的软 件。但是事实上,程序员使用某种语言能做到的事情,是有极限的。如果你想用一种低层次的语言,解决一个很难的问题,那么你将会面临各种情况极其复杂、乃至 想不清楚的窘境。

所以,当我说假定你与ITA竞争,你用五年时间做出的东西,ITA在Lisp语言的帮助下只用三个月就完成了,我指的五年还是一切顺利、没有犯错误、也没有遇到太大麻烦的五年。事实上,按照大多数公司的实际情况,计划中五年完成的项目,很可能永远都不会完成。

我承认,上面的例子太极端。ITA似乎有一批非常聪明的黑客,而C语言又是一种很低层次的语言。但是,在一个高度竞争的市场中,即使开发速度只相差两三倍,也足以使得你永远处在落后的位置。

I. C语言编程,怪异的执行结果(顺序):printf("%d,%d",(a++,--b),b-1);}。附汇编指令截图。

在一个表达式中的先后顺序与在一个语句中的先后顺序不完全一样,特别是这个多参数函数的调用,依据协议,C的标准协义是后面的参数先压栈,如果换个协义,则可能是换了个压栈顺序了,而VC还有智能优化处理,对于这个a++放前放后都不影响语句结果的,它不动寄存器,被提前处理了也正常,这里也就是先处理b-1表达式,结果压栈,再处理--b,结果再压栈,而后调用了printf函数.
我这也有个列子,看看结果,方便理解:
#include <stdio.h>
int main()
{
int a[]={10,20,30,40,50};
int *p=&a[2];
printf("%d,%d,%d,%d,%d,%d,%d\n",*p,*(++p),(*p)++,*p,*p--,--(*p),*p);
printf("%d,%d,%d,%d,%d\n",a[0],a[1],a[2],a[3],a[4]);
return 0;
}
VC7.1编译后运行的结果:
29,29,20,29,29,29,29
10,21,29,40,50

阅读全文

与怪异的编程语言相关的资料

热点内容
原神应急食品app不能用了怎么办 浏览:467
前沿算法 浏览:664
u2 wcmov 浏览:792
带搜索功能的电影网站 浏览:307
狂怒完整版135分钟 浏览:956
叫的小姐竟然是嫂子 浏览:178
法国啄木鸟网址名称 浏览:654
日本影院的网站 浏览:955
接触网pdf 浏览:14
洗头发解压长视频 浏览:704
女性抗日动作电影 浏览:450
食物链女主角的其他电影 浏览:238
3d动漫合集 浏览:957
程序员只能做30级吗 浏览:211
南京专业加密软件 浏览:240
不被服务器信任的证书是什么意思 浏览:974
软件编程上传工具 浏览:347
swich如何登陆美服务器 浏览:221
安卓大屏什么主板好 浏览:70
男主有个女病人的老公不孕不育的小说 浏览:334