刚从C++转过来。问几个pascal的语法问题。(50分)

  • 主题发起人 主题发起人 shiningstar
  • 开始时间 开始时间
S

shiningstar

Unregistered / Unconfirmed
GUEST, unregistred user!
C里的静态变量(static)在pascal里怎么写?
象C里 int i=0
这样在定义变量时初始化,在pascal里不行。请问pascal里怎么表示。
 
const

var
i:integer=0;//必须是全局变量才可以这样的
 
pascal中,可用全局变量替静态变量。
如果是函数参数,可使用引用参数,在参数前加var
为变量赋值不能在函数体以外,只能在begin end之间。
 
const是常量啊,修改常量总感觉不太好,不标准。
c++里的static又个非常好用的地方就是可以一个类的多个实例共享同一个变量。
 
老是揭Delphi的伤疤!坏透顶了。
 
还有,我想问问。什么情况下变量自动初始化,什么情况变量不自动初始化啊?
 
to:Highpeak
我不是揭Delphi的伤疤,我以前用BCB,习惯C的语法了。前几天看书,就找不到pascal
里这些相关的东西。是不是真的没有?那就用别的方法代替了。说实话我是很崇拜Borland
的。
 
局部变量不是动初始化,因为存放在stack中
全局变量自动初始化,因为存放在heap中
这和C是一样的。
 
用可以修改值的常量可以解决部分问题。

下面是别人的回答。
Constants(常量), 在delphi里面有两种:
一种叫<Font Color=#FF0000>True Constants</font>(真常量?),定义方法为
const identifier = value

注意没有类型标识符. 这种contants就是我们经常说的常量, 不能修改他的值.

还有一种叫<Font Color=#FF0000>"Typed constants"</font>,(类型常量?), 定义方法为:
const identifier: type = value

注意有一个类型标识符.这种contants可以被修改!!!
 
to :Highpeak
OK,我要的就是这东西。3x。我就觉得pascal不会比C差的。
 
》》还有,我想问问。什么情况下变量自动初始化,什么情况变量不自动初始化啊?
无论在什么地方声明简单类型的变量都自动初始化了。
比如你申明整形的变量时,就自动初始化为0了。
 
delphi的编译器更加智能,在定义全局变量的时候就会自动初始化integer类型为0
 
自己试下就清楚了!
 
感谢大家。
 
怎么结贴?
 
我还想往C++转呢,用够了控件了。
 
后退
顶部