不同语言的注释和数组

news2024/10/3 20:30:37

注释

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

不同形式的注释

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2186828.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode每日一题day17(24.9.27)——每种字符最少取k个

思路&#xff1a;看到题目就想到了搜索&#xff0c; 广搜&#xff1a;满足要求就往后搜&#xff0c;最后返回搜索队列达到过的最大深度&#xff0c; 深搜&#xff1a;一直往一边取&#xff0c;搜索完所有可能&#xff0c;并在此基础上进行剪枝&#xff0c;剪枝方案有如果某一分…

大师级GC调优:剖析高并发系统的垃圾回收优化实战

前期准备 大家开始前一定要对VisualVM、Jmeter这两款工具有所了解&#xff01; 1. 下载安装VisualVM&#xff0c;以便后续调优分析。JDK1.8及之前所在目录的bin目录下有自带的VisualVM&#xff0c;JDK1.8以后需要自行手动安装下载。 下载地址&#xff1a;https://visualvm.git…

模型的深度优化

文章目录 一、测试模型是否正确二、图形打印直观观察三、保存训练模型四、正确率&#xff08;仅使用于分类问题&#xff09; 一、测试模型是否正确 本文承接我的上一篇文章完整网络模型训练&#xff08;一&#xff09; 运用测试数据集&#xff08;test_dataloader&#xff09;…

第二十一章 (动态内存管理)

1. 为什么要有动态内存分配 2. malloc和free 3. calloc和realloc 4. 常⻅的动态内存的错误 5. 动态内存经典笔试题分析 6. 总结C/C中程序内存区域划分 1.为什么要有动态内存管理 我们目前已经掌握的内存开辟方式有 int main() {int num 0; //开辟4个字节int arr[10] …

全局安装cnpm并设置其使用淘宝镜像的仓库地址(地址最新版)

npm、cnpm和pnpm基本概念 首先介绍一下npm和cnpm是什么&#xff0c;顺便说一下pnpm。 npm npm&#xff08;Node Package Manager&#xff09;是Node.js的默认包管理器&#xff0c;用于安装、管理和分享JavaScript代码包。它是全球最大的开源库生态系统之一&#xff0c;提供了数…

centos环境安装JDK详细教程

centos环境安装JDK详细教程 一、前期准备二、JDK安装2.1 rpm方式安装JDK2.2 zip方式安装JDK2.3 yum方式安装JDK 本文主要说明CentOS下JDK的安装过程。JDK的安装有三种方式&#xff0c;用户可根据实际情况选择&#xff1a; 一、前期准备 查看服务器操作系统型号&#xff0c;执…

YOLOv7改进之主干DAMOYOLO结构,结合 CReToNeXt 结构,打造高性能检测器

一、DAMOYOLO理论部分 论文地址:2211.15444 (arxiv.org) 在本报告中,我们提出了一种快速准确的对象检测方法,称为 DAMO-YOLO,它实现了比最先进的 YOLO 系列更高的性能。DAMO-YOLO 是从 YOLO 扩展而来的,具有一些新技术,包括神经架构搜索 (NAS)、高效的重新参数化广义 …

【Linux】用虚拟机配置Ubuntu 24.04.1 LTS环境

目录 1.虚拟机安装Ubuntu系统 2.Ubuntu系统的网络配置 3.特别声明 首先我们先要下载VMware软件&#xff0c;大家自己去下啊&#xff01; 1.虚拟机安装Ubuntu系统 我们进去之后点击创建新的虚拟机&#xff0c;然后选择自定义 接着点下一步 再点下一步 进入这个界面之后&…

[C++]使用纯opencv部署yolov11目标检测onnx模型

yolov11官方框架&#xff1a;https://github.com/ultralytics/ultralytics 【算法介绍】 在C中使用纯OpenCV部署YOLOv11进行目标检测是一项具有挑战性的任务&#xff0c;因为YOLOv11通常是用PyTorch等深度学习框架实现的&#xff0c;而OpenCV本身并不直接支持加载和运行PyTor…

Python+Matplotlib展示单射、双射、满射

import matplotlib.pyplot as pltplt.rcParams[font.sans-serif] [SimHei] # 用来正常显示中文标签 plt.rcParams[axes.unicode_minus] False # 用来正常显示负号def create_function_plot(ax, title, x, y, connections):ax.set_xlim(0, 5)ax.set_ylim(0, 5)ax.set_aspect…

UE4 材质学习笔记01(什么是着色器/PBR基础)

1.什么是shader 着色器是控制屏幕上每个像素颜色的代码&#xff0c;这些代码通常在图形处理器上运行。 现如今游戏引擎使用先进的基于物理的渲染和照明。而且照明模型模型大多数是被锁定的。 因此我们创建着色器可以控制颜色&#xff0c;法线&#xff0c;粗糙度&#xff0c;…

十一假期不停歇-学习ROS第二天

一、自动修改环境变量 source install/setup.bash 这句指令可不重复添加环境变量&#xff0c;直接运行就可以。 从左右图即可即可看出有所不同的。以后写完功能包发现不存在那就source一下就好了。 实际上它运行的是 python3.10那里的功能包与节点 我们在创建完功能包会出…

python-矩阵转置/将列表分割成块/和超过N的最短子数组

一&#xff1a;矩阵转置 题目描述 输入一个 n 行 m 列的矩阵 A&#xff0c;输出它的转置 AT。输入 第一行包含两个整数 n 和 m&#xff0c;表示矩阵 A 的行数和列数。1≤n≤100&#xff0c;1≤m≤100。接下来 n 行&#xff0c;每行 m 个整数&#xff0c;表示矩阵 A 的元素。相邻…

别再为开题报告发愁了,ChatGPT可以助力你高效完成!

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 面对开题报告时&#xff0c;我们常常感到迷茫和压力。如何清晰地表达研究目的、梳理文献综述、明确研究问题与假设&#xff0c;以及构建合理的研究方法&#xff0c;这些环节都对开题报告…

OpenCV-图像拼接

文章目录 一、基本原理二、步骤三、代码实现1.定义函数2.读取图像3.图像配准&#xff08;1&#xff09;.特征点检测&#xff08;2&#xff09;.特征匹配 4.透视变换5.图像拼接 四、图像拼接的注意事项 图像拼接是一种将多张有重叠部分的图像合并成一张无缝的全景图或高分辨率图…

蓝桥杯【物联网】零基础到国奖之路:十七. 扩展模块之单路ADC和NE555

蓝桥杯【物联网】零基础到国奖之路:十七. 扩展模块之单路ADC和NE555 第一节 硬件解读第二节 CubeMx配置第三节 代码1&#xff0c;脉冲部分代码2&#xff0c;ADC部分代码![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/57531a4ee76d46daa227ae0a52993191.png) 第一节 …

基于工业物联网的能源监控系统:边缘数据处理的应用

论文标题&#xff1a;《Industrial IoT-Based Energy Monitoring System: Using Data Processing at Edge》 作者信息&#xff1a; Akseer Ali MiraniAnshul AwasthiNiall O’MahonyJoseph Walsh 他们均来自爱尔兰的芒斯特技术大学IMaR研究中心&#xff0c;以及位于利默里克的…

秋招校招北森笔试测评北森笔测评常见图推题目解答

北森笔试测评常见题目解析第二弹&#xff1a; P1&#xff1a;每一行均出现圆&#xff0c;米&#xff0c;口加上内部的菱形和小圆形&#xff0c;行测上称之为遍历。 P2&#xff1a;题干也给提示了&#xff0c;肯定不选9&#xff0c;考虑封闭部分&#xff0c;选11. P3&#xf…

面试速通宝典——7

150. 数据库连接池的作用 数据库连接池的作用包括以下几个方面&#xff1a; 资源重用&#xff1a;连接池允许多个客户端共享有限的数据库连接&#xff0c;减少频繁创建和销毁连接的开销&#xff0c;从而提高资源的利用率。 统一的连接管理&#xff1a;连接池集中管理数据库连…

访问webapps下边的内容不能访问解决办法

1、看是否是带有中文路径&#xff0c;中文路径访问不了 2、是否在访问的时候没有带8080端口 如图&#xff0c;带有8080就可以访问了 原因&#xff1a; 当你尝试通过 http://localhost:8080/hello/hello.html 访问网页时&#xff0c;端口号 “8080” 指定了该请求将发送到本地主…