不同语言的注释和数组

注释

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

不同形式的注释

  • !

    • 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等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

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

相关推荐
王景程3 分钟前
如何测试短信接口
java·服务器·前端
2301_807611499 分钟前
77. 组合
c++·算法·leetcode·深度优先·回溯
安冬的码畜日常26 分钟前
【AI 加持下的 Python 编程实战 2_10】DIY 拓展:从扫雷小游戏开发再探问题分解与 AI 代码调试能力(中)
开发语言·前端·人工智能·ai·扫雷游戏·ai辅助编程·辅助编程
烛阴28 分钟前
Node.js中必备的中间件大全:提升性能、安全与开发效率的秘密武器
javascript·后端·express
小杨升级打怪中31 分钟前
前端面经-JS篇(三)--事件、性能优化、防抖与节流
前端·javascript·xss
朝阳5811 小时前
Rust项目GPG签名配置指南
开发语言·后端·rust
微网兔子1 小时前
伺服器用什么语言开发呢?做什么用什么?
服务器·c++·后端·游戏
朝阳5811 小时前
Rust实现高性能目录扫描工具ll的技术解析
开发语言·后端·rust
程高兴1 小时前
基于Matlab的车牌识别系统
开发语言·matlab
YuforiaCode1 小时前
第十三届蓝桥杯 2022 C/C++组 修剪灌木
c语言·c++·蓝桥杯