2017-01-09 86 views
3

所以,我可以在Fortran语言既初始化字符串时'...'和“...”有什么区别?

CHARACTER(LEN=4)::string 
string = "jklm" 

CHARACTER(LEN=4)::string 
string = 'jklm' 

什么区别初始化字符串?

+1

作为一个次要的(也许不重要的)一点,这里没有_initialization_,只是_assignment_。重要的概念是分隔字符常量。 – francescalus

+0

@francescalus谢谢澄清。但是,尽管我尝试翻译,但我还是不太明白你的第二句话。你的意思是说...我只将字符串分配给一个已经存在的格式字符串常量(“jklm”)? –

+0

''jklm''就是所谓的(人物)_常量__。这是一种由四个字母组成的价值,并始终具有这种价值的东西。这样的常量可以用于初始化,赋值或其他许多方面,引用/撇号的解释不会改变它。因此,告诉编译器“这里的内容形成一个字符串”和“这里的内容回到字符串外部”的分隔符('“或''')不是特定于初始化,而是说”常量“。 [希望这并没有让事情变得不那么明显...] – francescalus

回答

3

对fortan文档一瞥,大部分看起来都是一样的。尽管如果您打算在字符串中使用单引号,请使用双引号将其括起来。

// correct 
"John's Stuff" 

// wrong 
'John's Stuff' 

或者:

// correct 
'She said "Hey!"' 
// wrong 
"She said "Hey!"" 

http://www.fortran90.org/src/rosetta.html#strings-and-formatting

编辑:顺便说一句,这同样适用于大多数编程语言。

+2

也正确的'约翰的东西'和'约翰'的东西“,即加倍引号或撇号。 –

+0

@HighPerformanceMark转义字符曾经给我做恶梦:) – Brian

2

在功能上,它们是相同的。尽管“”看起来更具可读性,但完全没有区别。

相关问题