跨平台freebasic集锦(2)-基本语法(1)-dim(1)

news/2024/11/28 21:40:52/

目录

    • dim
      • 例子
      • DIM
      • 数组
      • 多维数组

dim

例子

dim x as integer
dim y as integer
DIM  z1 as integer
dim z2 as integer
dim userName as string
x=5
y=8
z1=x+y
z2=x-y
Print "x = "; x
Print "y = "; y
Print "z1:"; z1;"   z2:",z2

编译并运行

F:\learn\fbs>1
x =  5
y =  8
z1: 13   z2:  -3F:\learn\fbs>
dim x as integer
dim y as integer
DIM  as integer z1,z2 
dim userName as string
x=5
y=8
z1=x+y
z2=x-y
Print "z1:"; z1;"   z2:",z2
userName="张三"
print "你好";userName
F:\learn\fbs>1
z1: 13   z2:  -3
你好张三F:\learn\fbs>

DIM

语法


Dim [Shared] name1 As DataType [, name2 As DataType, ...]
或
Dim [Shared] As DataType name1 [, name2, ...]

数组

Dim name ( [lbound To] ubound [, ...] ) As DataType
Dim name ( Any [, Any...] ) As DataType
Dim name ( ) As DataType

初始化

Dim scalar_symbol As DataType = expression | Any
Dim array_symbol (arraybounds) As DataType = { expression [, ...] } | Any
Dim udt_symbol As DataType = ( expression [, ...] ) | Any

按名称声明变量并保留内存以容纳它。

变量必须先声明,然后才能在-lang fb方言中使用,或者在其他方言中使用Option Explicit。只有在-lang qb和-lang fblite方言中,可以在不首先声明变量的情况下使用变量,在这种情况下,它们被称为隐式变量。

Dim可用于声明和分配任何受支持数据类型、用户定义类型或枚举的变量。

根据变量或数组的声明位置和方式,可以更改其在内存中的分配方式。请参阅存储类别。

通过用逗号分隔每个变量声明,可以在单个Dim语句中声明多个变量。
比如

'' Variable declaration examples'' One variable per DIM statement
Dim text As String
Dim x As Double'' More than one variable declared, different data types
Dim k As Single, factor As Double, s As String'' More than one variable declared, all same data types
Dim As Integer mx, my, mz ,mb'' Variable having an initializer
Dim px As Double Ptr = @x

具有隐式数据类型的显式变量

在-lang qb和-lang fblite方言中,即使变量是显式声明的,如果数据类型不是通过名称或类型后缀显式给出的,也将为其提供默认数据类型。默认数据类型在-lang qb方言中为Single,在-lang fblite方言中为Integer。通过使用Def###语句,可以在整个源列表中更改默认数据类型。(例如,DefInt、DefStr、DefSng)


'' Compile with -lang qb'$lang: "qb"'' All variables beginning with A through N will default to the INTEGER data type
'' All other variables default to the SINGLE data type
DefInt I-NDim I, J, X, Y, T$, D As Double
'' I and J are INTEGERs
'' X and Y are SINGLEs
'' T$ is STRING
'' D is DOUBLE

数组

与大多数BASIC方言一样,FreeBASIC支持索引范围从下限到上限的数组。在所示的语法中,lbound指的是下限或最小索引。ubound是指上限,或最大的索引。如果未指定下限,则默认为零,除非使用Option Base。

Const upperbound = 10'' Declare an array with indexes ranging from 0 to upperbound,
'' for a total of (upperbound + 1) indexes.
Dim array(upperbound) As Single

多维数组

多维数组也可以声明,并以这种确定的顺序存储:仅在最后一个索引中不同的值是连续的(行主顺序)。

多维数组的最大维数为8。

'' declare a three-dimensional array of single
'' precision floating-point numbers.
Dim array(1 To 2, 6, 3 To 5) As Single'' The first dimension of the declared array
'' has indices from 1 to 2, the second, 0 to 6,
'' and the third, 3 to 5.

如果与Dim一起用于声明数组维度的值都是常量,则将创建固定长度(静态大小,除非指定了Option Dynamic)的数组,而使用一个或多个变量来声明数组维度,则即使Option Static有效,也会使其变长。

数组可以通过几种方式声明为可变长度:使用带有空索引集的Dim(Dim x()),使用带有变量索引的Dim或使用关键字Redim,或使用Any代替数组边界,或通过元命令$Dynamic声明数组。可变长度数组不能使用初始值设定项。

用Dim声明的数组具有常量索引,且不在Option Dynamic之前,数组的长度是固定的(在运行时不可调整大小),可以使用初始值设定项。

上限可以是省略号(…,3点)。这将导致根据初始值设定项中找到的元素数量自动设置上限。以这种方式使用省略号时,必须使用初始值设定项,并且它不能是Any。请参见省略号页面以获取简短示例。

另请参见固定长度数组和可变长度数组。


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

相关文章

探索SpringMVC-DispatcherServlet

前言 在《探索SpringMVC-web上下文》中,我们介绍了DispatcherServlet的上下文的初始化。然后为了让大家对DispatcherServlet的各个组件有所了解,我们花了很多的时间来介绍各大组件。现在我们来看看DispatcherServlet是如何使用这些组件完成功能的。 Di…

Vue3【创建项目、代码分析、响应式原理-代理、data详解、methods、computed】

文章目录自动创建项目代码分析响应式原理-代理data详解methodscomputed自动创建项目 npm init vuelatest yarn create vue yarn yarn dev 代码分析 data是一个函数在data中,this就是当前的组件实例vm如果使用箭头函数,则无法通过this来访问组件实例使用…

人大金仓数据库的用户与角色

创建用户 create user 用户名 授予用户创建数据库权限 alter user 用户名 要给的权限 然后查看用户信息 \du 用户名 设置用户密码 没有口令不能登录 alter user 用户名 password ‘kingbase’; 修改用户的并发连接数 alter user 用户 connection limit 要设置的连接数; 修改…

软件工程 黄金点游戏

这个故事最初出现在 《移山之道》中,我经常拿来做和创新的时机相关课堂练习和讨论,效果很好。我把这个练习和它的一些延伸话题都搬到这个新博客里。 黄金点游戏 N个同学(N通常大于10),每人写一个 0~100之间的有理数 …

【GIT】git本地代码上传到github

第一步&#xff1a;建立git仓库 cd到你的本地项目根目录下&#xff0c;执行git命令 git init 1.2重命名当前分支&#xff1a; git branch -m <new_branch_name> 第二步&#xff1a;将项目的所有文件添加到仓库中 git add . 如果想添加某个特定的文件&#xff0c;只需…

cmake 03 一个可用的 cmake 工程应当是什么样的

cmake 学习笔记 代码地址: https://gitcode.net/u014254963/cmake-study/-/tree/master/hello_cmake_project https://gitcode.net/u014254963/cmake-study/-/tree/master/hello_cmake_project_vs 本文目标 多目录构建引用自己写的动态库关于单元测试的一些实践使用 python 脚…

Acwing——第 87 场周赛

题目链接 4797. 移动棋子 4798. 打怪兽 4799. 最远距离 题目描述 4797. 移动棋子 给定一个 5 行 5 列的方格矩阵&#xff0c;其中一个方格中有一个棋子。 现在&#xff0c;我们希望将棋子移动至矩阵的最中心方格中&#xff0c;即将其移动至矩阵的第 3行第 3列方格中。 每次…

Cheat Engine7.4 训练教程(非常详细)

目录 一.CE是干什么的&#xff1f; 二.怎么获得&#xff1f; 三.训练教程 步骤 1: 加载进程 步骤 2: 精确值扫描 步骤 3: 未知的初始值 步骤 4: 浮点数 步骤 5: 代码查找 步骤 6: 指针 步骤 7: 代码注入 步骤 8: 多级指针 提示&#xff1a;这篇文章不是一天写完的&a…