不同语言的注释和数组

注释

不同编程语言的注释不尽相同,有的用//, 有的用!, 有的用#, 各不相同。

不同形式的注释

  • !

    • Fortran
  • --

    • Ada
  • //

    • 最早BCPL,到C++/Java/C99, 基本所有C系编程语言都支持,JS也支持。
    • Shell和Python.
  • /* */

    • C系编程语言支持,JS也支持。
  • (* *)

    • Pascal.
  • Windows批处理注释采用REM或::或% <注释> %.

注释嵌套

  • C/C++不支持多行注释嵌套,比如/* */, 嵌套并不会带来什么好处,反而带来更多复杂性。当编译器看到/*时认为是注释开始,又遇到了一个/*, 编译器是不是应该忽略它,应该不管忽略不忽略,从语法上都是注释...所以,编译器不如简单点,遇到/*后,就找下一个*/, 不管中间遇到什么都是注释的一部分。随着产生的问题是,/* /* */被认为的注释结束,后面再跟着 */就非法了。

  • Swift支持/* */嵌套,例如 /* comment /* nest comment */ */.

如何测试编译器是否支持嵌套注释?

  • C缺陷和陷阱 中提出了一个巧妙的方法:
    int i = /*/*/0*/**/1;
    如果i是0代表不支持,为1代表支持。

数组

数组的理解其实很简单,就是数据的连续堆积。最早FORTRAN和ALGOL 68就有数组的概念。

最简单的数据结构

  • 现实世界中最简单方便有效的数据结构。小数据量的绝佳选择, 兼顾效率和易用。

  • 操作系统、驱动和库常有使用。

数组存放栈或堆

  • C/C++允许定义数组于堆栈区,这种方式更加灵活,尤其对于内存性能要求较高的场所。

  • Java中数组不可能位于堆栈区,只能是堆对象,某些时候不太灵活。

  • 大部分编程语言将数组作为引用类型,包括C/C++/Java/C#等,Go把数组当做值类型。

数组形态

  • 大部分使用中括号表示数组,中括号加下标表示数组长度或Index.

可变数组VLA

  • 尽管C99支持VLA, C11中废弃它,因为它实在不太好用。动态数组比它优秀多了。

  • C# stackalloc支持VLA.

数组索引

字符串本质是一个数组,一般二者的索引起始点是相同的。

  • 从0开始: 和现实世界对应,"当前"的元素距离是0. 大部分编程语言采用
    • 例如C/ObjC/C++/Java/C#/Python/JavaScript/Go/Rust/Swift/仓颉
  • 从1开始
    • 例如Pascal/Fortran/VB.
  • C语言数组名和索引位置互换是同一个意思,a[1]等同于1[a].

数组元素类型

  • 为了方便管理,数组元素一般都是相同类型。

  • Javascript数组元素可以是不同对象。

数组赋值

  • C语言把数组名当成常量,数组名不可以被赋值。

  • Java/C#数组名只是一个引用,本质是指针,可以被赋值。


微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

相关推荐
熊猫钓鱼>_>28 分钟前
建筑IT数字化突围:建筑设计企业的生存法则重塑
前端·javascript·easyui
代码小将34 分钟前
Leetcode209做题笔记
java·笔记·算法
专注_每天进步一点点35 分钟前
idea 启动Springboot项目在编译阶段报错:java: OutOfMemoryError: insufficient memory
java·spring boot·intellij-idea
dhxhsgrx2 小时前
PYTHON训练营DAY25
java·开发语言·python
GISer_Jing3 小时前
前端性能指标及优化策略——从加载、渲染和交互阶段分别解读详解并以Webpack+Vue项目为例进行解读
前端·javascript·vue
君鼎3 小时前
C++设计模式——单例模式
c++·单例模式·设计模式
不知几秋3 小时前
数字取证-内存取证(volatility)
java·linux·前端
风逸hhh4 小时前
python打卡day25@浙大疏锦行
开发语言·python
刚入门的大一新生4 小时前
C++初阶-string类的模拟实现与改进
开发语言·c++
小冯的编程学习之路5 小时前
【软件测试】:推荐一些接口与自动化测试学习练习网站(API测试与自动化学习全攻略)
c++·selenium·测试工具·jmeter·自动化·测试用例·postman