这次是一个基本语法的第一部分,包括变量、变量初始化、常量、运算符、字符串等内容。

{
本程序演示 Delphi Pascal 的基本语法
1、变量及变量的初始化
2、常量
3、运算符
3、
4、 }
program Syntax; {$APPTYPE CONSOLE} uses
SysUtils,Windows,StrUtils; { 变量
1、Delphi中变量必须在固定的地方进行定义
2、Delphi中通过关键字 var 来定义变量
3、语法格式为:
var 变量名标识符列表 : 变量类型 ;
变量名列表中的各个变量名之间用逗号隔开
4、初始化格式为
var 变量名标识符列表 : 变量类型 = 初始化值; 5、注意三个符号的位置 冒号 等于号 和 分号
}
var
//第一种形式的变量定义
greetWord:string;
//第二种形式的变量定义
nAdd,nAddFactor:integer; //变量的初始化
rad : single = 5.0 ; //宽字符字符串
chinaName:WideString;
//ansichar 类型单字节字符串
englishName:AnsiString; //定义一个没有初始化的字符串
noInitString:string; //定义一个与win32兼容的字符串
dirWideString:widestring;
dirString:ansistring; { 常量
1、Delphi中预定义了一部分常量
true Boolean 类型的true
false Boolean 类型的false 2、在Delphi中利用 const 关键字定义常量
3、语法格式为
const 常量名标识符 : 常量的数据类型 = 初始化值。
4、初始化值必须有,常量的数据类型可以省略,Delphi会根据初始化值自动确定
常量的数据类型,进而分配相应的内存空间。 但是对于整数型的常量,内存
空间的分配遵循能容纳初始化值的最小空间数据类型确定。
例如:
10 会确定为 shortint类型
5、常量还有一种常量字面值,就是和C语言中一样的字面值,例如
10 整数常量
2.06 实数常量
'Hello world' 字符串常量
'a' 字符常量 }
const
pi:single=3.1415926; { 要点
1、Delphi中允许在定义变量和常量的时候使用编译期函数来初始化变量。
2、常见的编译期函数有:
Sizeof()
Ord()
Chr()
Trunc()
Round()
High()
Low()
这里就不举例啦,一般不太会用到,
} begin
//赋值运算符 :=
greetWord := 'Hello, Wellcome to Delphi world!'; //比较运算符 = 判断是否相等
nAdd := ;
nAddFactor := ;
if nAdd = nAddFactor then
begin
writeln('Equal.');
end; //比较运算符 <> 不等于运算符, 如果不相等则返回TRUE
if nAdd <> nAddFactor then
begin
writeln('Not Equal.');
end; //逻辑运算符 and 与 ,注意Delphi中逻辑运算符的优先级要高于比较运算符
if ( = nAdd) and ( <> nAddFactor )then
begin
writeln('The judge is ture.');
end; //逻辑或 or 非 , 注意Delphi中逻辑运算符的优先级要高于比较运算符
if ( = nAdd) or ( <> nAddFactor )then
begin
writeln('The judge is ture.');
end; //逻辑非 not 非, 注意Delphi中逻辑运算符的优先级要高于比较运算符
if not ( = nAdd) then
begin
writeln('1 is not equal nAdd.');
end; { 数学运算符
1、数学运算符基本与C语言类似,但是有几个特殊的需要说明一下
2、mod 求模运算符
3、div 整数除法, 得到的结果是整数
4、/ 浮点数除法,得到的结果是浮点数
}
writeln('整数除法 3 div 2 的结果是:');
writeln( div ); writeln('浮点数除法 3 / 2 的结果是:');
writeln( / ); writeln('求余数 3 mod 2 的结果是:');
writeln( mod ); { 按位运算符
1、Delphi也提供了按位运算的运算符
2、and 按位与
3、or 按位或
4、not 按位非
5、xor 按位异或
6、shl 按位左移
7、shr 按位右移
}
writeln('2 and 5 按位与的结果是:');
writeln( and ); writeln('2 or 5 按位或的结果是:');
writeln( or ); writeln('not 2 按位非的结果是:');
writeln(not ); writeln('2 xor 5 按位异或的结果是:');
writeln( xor ); writeln('2 shl 5 按位左移的结果是:');
writeln( shl ); writeln('2 shr 5 按位右移的结果是:');
writeln( shr ); { 增量运算符
1、inc 增加
2、dec 减小
3、有两种形式 inc(a); 得到的结果是 a := a + 1
inc(a, b); 得到的结果是 a := a + b
}
writeln('nAdd is:');
writeln(nAdd);
writeln('Inc(nAdd) is:');
Inc(nAdd);
writeln(nAdd);
Dec(nAdd);
writeln('Dec(nAdd) is:');
writeln(nAdd); { 数据类型
1、整数 8位、16位、32位有符号无符号整数,64位有符号整数
2、4位、6位、8位、10位浮点型,64位货币类型
3、1字节字符、2字节字符
4、定长字符串、变长字符串
5、NULL结尾字符串、NULL结尾宽字符串
6、动态两字节字符串
7、1字节、2字节、4字节boolean类型
} //ansichar 具有标准一字节大小
if sizeof(char)=sizeof(ansichar) then
begin
writeln('char and ansichar have the same size.');
end; //char 具有和widechar一样的有两字节大小
if sizeof(char)=sizeof(widechar) then
begin
writeln('char and widechar have the same size.');
end; { 字符串
1、shortstring 具有256字节长度的字符串,ansichar字符串
2、ansistring 顾名思义就是由 ansichar 构成的字符串
3、widestring 顾名思义就是由 widechar 构成的字符串
4、pchar 以NULL结尾的字符串的指针,兼容C语言的char*
5、pansichar 以NULL结尾的ansichar字符串指针
6、pwidechar 以NULL结尾的 widechar 字符串指针
7、默认情况下 string 定义的是 ansichar 类型
} (*
1、需要特别注意 {$H+} 和 {$H-} 编译开关对string类型的影响
{$H+} 则表示 string 为 ansichar
{$H-} 则表示 string 为 shortchar
、数值型数据类型不做过多的介绍
*)
writeln(sizeof(shortstring)); //给宽字符字符串赋值
chinaName := '中国'; //给单字节字符串赋值
englishName := 'England'; writeln(chinaName);
writeln(englishName); { ansistring的细节
1、string定义的时候没有分配内存
2、赋值或者初始化后string变量就分配内存
3、通过SetLength()函数可以申请内存
4、可以通过索引访问字符串
5、string类型具有垃圾自动回收机制,当生命周期结束后,由系统自动回收
系统分配给string的内存
6、字符串类型支持 + 连接运算
}
// 下面的用法错误
//noInitString[0] := 'a';
// 但是利用下面的方法则是正确的,通过 SetLength() 函数申请内存空间。
SetLength(noInitString,);
noInitString := 'a' ; //当进行 + 连接字符串运算时,系统会自动分配足够的内存
noInitString := noInitString + ' apple';
writeln(noInitString); { ansistring与 Win32 接口具有兼容性
1、因为 ansistring 是以 NULL 结束的字符串,因此可以与Win32字符串兼容
}
SetLength(dirString,);
//SysAllocStringLen(dirWideString,256);
//获取windows目录
//GetWindowsDirectory(PWideChar(dirWideString),256);
dirString := dirWideString;
writeln(dirString); readln;
end.

  欢迎转载,转载请注明来源。

Delphi_03_Delphi_Object_Pascal_基本语法_01的更多相关文章

  1. python_基本语法_01

    离毕业工作还有几个月,本来想早点去公司实习,无奈gb学校不给放.好吧,既然这样,就学门语言. 参考与 http://www.cnblogs.com/vamei ,我是跟着这位博客牛人的博客教程学的,具 ...

  2. 数往知来 SQL SERVER 基本语法<七>

    sqlserver学习_01 启动数据库 开始->cmd->进入控制台    sqlcmd->-S .\sqlexpress    1> 如果出现表示数据库"sqle ...

  3. Java基础知识二次学习-- 第二章 基础语法与递归补充

    第二章 基础语法与递归补充   时间:2017年4月24日10:39:18 章节:02章_01节,02章_02节 视频长度:49:21 + 15:45 内容:标识符,关键字与数据类型 心得:由字母,下 ...

  4. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  5. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  6. 探索C#之6.0语法糖剖析

    阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和fin ...

  7. [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性

    回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...

  8. Velocity初探小结--velocity使用语法详解

    做java开发的朋友一般对JSP是比较熟悉的,大部分人第一次学习开发View层都是使用JSP来进行页面渲染的,我们都知道JSP是可以嵌入java代码的,在远古时代,java程序员甚至在一个jsp页面上 ...

  9. node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法

    1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...

随机推荐

  1. C# 给word文档添加水印

    和PDF一样,在word中,水印也分为图片水印和文本水印,给文档添加图片水印可以使文档变得更为美观,更具有吸引力.文本水印则可以保护文档,提醒别人该文档是受版权保护的,不能随意抄袭.前面我分享了如何给 ...

  2. C# 用SoapUI调试WCF服务接口(WCF中包含用户名密码的验证)

    问题描述: 一般调试wcf程序可以直接建一个单元测试,直接调接口. 但是,这次,我还要测试在接口内的代码中看接收到的用户名密码是否正确,所以,单一的直接调用接口方法行不通, 然后就想办法通过soapU ...

  3. AspNetPager分页控件样式的使用

    分页是Web应用程序中最常用到的功能之一,AspNetPager  简单实用,应用到项目后台中,棒极了! 自定义样式: <style type="text/css"> ...

  4. iosselect:一个js picker项目,在H5中实现IOS的select下拉框效果

    具体文档和demo可以访问github:https://github.com/zhoushengmufc/iosselect 移动端浏览器对于select的展示样式是不一致的,ios下是类似原生的pi ...

  5. Redis集群案例与场景分析

    1.背景 Redis的出现确实大大地提高系统大并发能力支撑的可能性,转眼间Redis的最新版本已经是3.X版本了,但我们的系统依然继续跑着2.8,并很好地支撑着我们当前每天5亿访问量的应用系统.想当年 ...

  6. HBase笔记:对HBase原理的简单理解

    早些时候学习hadoop的技术,我一直对里面两项技术倍感困惑,一个是zookeeper,一个就是Hbase了.现在有机会专职做大数据相关的项目,终于看到了HBase实战的项目,也因此有机会搞懂Hbas ...

  7. Redis学习手册(目录)

    为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原因主要有三.其一,Redis不仅性能高效,而且完全免费.其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧.最后 ...

  8. SpringMVC+MyBatis整合——事务管理

    项目一直没有做事务管理,这几天一直在想着解决这事,今天早上终于解决了.接下来直接上配置步骤. 我们项目采用的基本搭建环境:SpringMVC.MyBatis.Oracle11g.WebLogic10. ...

  9. iOScollectionView广告无限滚动(Swift实现)

    今天公司里的实习生跑过来问我一般App上广告的无限滚动是怎么实现的,刚好很久没写博客了,就决定写下了,尽量帮助那些处于刚学iOS的程序猿. 做一个小demo,大概实现效果如下图所示: 基本实现思路: ...

  10. SVM分类与回归

    SVM(支撑向量机模型)是二(多)分类问题中经常使用的方法,思想比较简单,但是具体实现与求解细节对工程人员来说比较复杂,如需了解SVM的入门知识和中级进阶可点此下载.本文从应用的角度出发,使用Libs ...