不同语言的注释和数组

news/2024/12/22 2:09:12/
cle class="baidu_pl">
cle_content" class="article_content clearfix">
content_views" class="htmledit_views">

class="tags" href="/ZhuShi.html" title=注释>注释

不同编程语言的class="tags" href="/ZhuShi.html" title=注释>注释不尽相同࿰c;有的用//, 有的用!, 有的用#, 各不相同。

不同形式的class="tags" href="/ZhuShi.html" title=注释>注释

  • !
    • Fortran

  • --
    • Ada

  • //
    • 最早BCPL࿰c;到C++/Java/C99, 基本所有C系编程语言都支持࿰c;JS也支持。

  • #
    • Shell和Python.

  • /* */
    • C系编程语言支持࿰c;JS也支持。

  • (* *)
    • Pascal.

  • Windows批处理class="tags" href="/ZhuShi.html" title=注释>注释采用REM或::或% <class="tags" href="/ZhuShi.html" title=注释>注释> %.

class="tags" href="/ZhuShi.html" title=注释>注释嵌套

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

  • Swift支持/* */嵌套࿰c;例如 /* comment /* nest comment */ */.

如何测试编译器是否支持嵌套class="tags" href="/ZhuShi.html" title=注释>注释?

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

class="tags" href="/ShuZu.html" title=数组>数组

class="tags" href="/ShuZu.html" title=数组>数组的理解其实很简单࿰c;就是数据的连续堆积。最早FORTRAN和ALGOL 68就有class="tags" href="/ShuZu.html" title=数组>数组的概念。

最简单的数据结构

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

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

class="tags" href="/ShuZu.html" title=数组>数组存放栈或堆

  • C/C++允许定义class="tags" href="/ShuZu.html" title=数组>数组于堆栈区࿰c;这种方式更加灵活࿰c;尤其对于内存性能要求较高的场所。

  • Java中class="tags" href="/ShuZu.html" title=数组>数组不可能位于堆栈区࿰c;只能是堆对象࿰c;某些时候不太灵活。

  • 大部分编程语言将class="tags" href="/ShuZu.html" title=数组>数组作为引用类型࿰c;包括C/C++/Java/C#等࿰c;Go把class="tags" href="/ShuZu.html" title=数组>数组当做值类型。

class="tags" href="/ShuZu.html" title=数组>数组形态

  • 大部分使用中括号表示class="tags" href="/ShuZu.html" title=数组>数组࿰c;中括号加下标表示class="tags" href="/ShuZu.html" title=数组>数组长度或Index.

可变class="tags" href="/ShuZu.html" title=数组>数组VLA

  • 尽管C99支持VLA, C11中废弃它࿰c;因为它实在不太好用。动态class="tags" href="/ShuZu.html" title=数组>数组比它优秀多了。

  • C# stackalloc支持VLA.

class="tags" href="/ShuZu.html" title=数组>数组索引

字符串本质是一个class="tags" href="/ShuZu.html" title=数组>数组࿰c;一般二者的索引起始点是相同的。

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

class="tags" href="/ShuZu.html" title=数组>数组元素类型

  • 为了方便管理࿰c;class="tags" href="/ShuZu.html" title=数组>数组元素一般都是相同类型。

  • Javascriptclass="tags" href="/ShuZu.html" title=数组>数组元素可以是不同对象。

class="tags" href="/ShuZu.html" title=数组>数组赋值

  • C语言把class="tags" href="/ShuZu.html" title=数组>数组名当成常量࿰c;class="tags" href="/ShuZu.html" title=数组>数组名不可以被赋值。

  • Java/C#class="tags" href="/ShuZu.html" title=数组>数组名只是一个引用࿰c;本质是指针࿰c;可以被赋值。


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

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

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

class="blog-extension-box">

http://www.ppmy.cn/news/1534721.html

相关文章

一些 Go Web 开发笔记

原文&#xff1a;Julia Evans - 2024.09.27 在过去的几周里&#xff0c;我花了很多时间在用 Go 开发一个网站&#xff0c;虽然不知道它最终会不会发布&#xff0c;但在这个过程中我学到了一些东西&#xff0c;想记录下来。以下是我的一些收获&#xff1a; Go 1.22 现在有了更…

C#中NModbus4中常用的方法

NModbus4 是一个用于 Modbus 协议通信的 C# 库&#xff0c;它支持串行 ASCII、RTU、TCP 和 UDP 协议。以下是 NModbus4 中常用的一些方法&#xff1a; 创建连接&#xff1a; ModbusSerialMaster.CreateRtu(SerialPort serialPort): 创建一个 RTU 串行连接。ModbusSerialMaster.…

使用MTVerseXR SDK实现VR串流

1、概述​ MTVerseXR SDK 是摩尔线程GPU加速的虚拟现实&#xff08;VR&#xff09;流媒体平台&#xff0c;专门用于从远程服务器流式传输基于标准OpenXR的应用程序。MTVerseXR可以通过Wi-Fi和USB流式将VR内容从Windows服务器流式传输到XR客户端设备, 使相对性能低的VR客户端可…

golang-基础知识(流程控制)

1 条件判断if和switch 所有的编程语言都有这个if&#xff0c;表示如果满足条件就做某事&#xff0c;不满足就做另一件事&#xff0c;go中的if判断和其它语言的区别主要有以下两点 1. go里面if条件判断不需要括号 2. go的条件判断语句中允许声明一个变量&#xff0c;这个变量…

坐标系变换总结

二维情况下的转换 1 缩放变换 形象理解就是图像在x方向和y方向上放大或者缩小。 代数形式&#xff1a; { x ′ k x x y ′ k y y \begin{cases} x k_x x \\ y k_y y \end{cases} {x′kx​xy′ky​y​ 矩阵形式&#xff1a; ( x ′ y ′ ) ( k x 0 0 k y ) ( x y ) \be…

Ubuntu24.04.1系统下VideoMamba环境配置

文章目录 前言第一步&#xff1a;基本的环境创建第二步&#xff1a;causal-conv1d和mamba_ssm库的安装第三步&#xff1a;安装requirements.txt 前言 VideoMamba环境的配置折磨了我三天&#xff0c;由于Mamba对Cuda的版本有要求&#xff0c;因此配置环境的时候Cuda版本以及各种…

计算机网络思维导图

计算机网络 网络层 概述 主要任务 实现网路互连&#xff0c;进而实现数据包在各网络之间的传输 解决问题 向运输层提供可靠传输/不可靠传输的服务网络层寻址问题路由选择问题 英特网时使用最多的互联网&#xff0c;使用TCP/IP协议栈 网络层使用网际协议IP&#xff0c;时整个…

Kali或Debian系统安装JDK1.8保姆级教程

一、下载JDK1.8 先到Oracle的官网下载JDK1.8 Java Archive | Oraclehttps://www.oracle.com/java/technologies/downloads/archive/Java Archive Downloads - Java SE 8