मुझे नहीं लगता कि इस तरह के व्यवहार के पीछे कुछ तर्क है।
लेकिन जहां तक मुझे पता है, स्टीफानो, आपने गलत शब्दावली का उपयोग किया था। आपके कोड में कोई असाइनमेंट स्टेटमेंट प्रारंभिक अभिव्यक्ति (0) का उपयोग करके केवल परिवर्तनीय (var) प्रारंभिकता नहीं है।
integer :: var = 0 ! type declaration & initialization
integer :: var ! type declaration
var = 0 ! assignment
तो ऐसा लगता है कि यह केवल समिति डिजाइन निर्णय था। अगर हमारे पास ऐसी अभिव्यक्ति है (समानता चिह्न प्रकार घोषणा घोषणा कथन के साथ) यह प्रारंभिकता असाइनमेंट नहीं है। और प्रारंभिक कार्यक्रम (और प्रक्रियाओं) निष्पादन के दौरान केवल एक बार होता है।
हालांकि इस तरह के निर्णय के लिए कुछ ऐतिहासिक कारण हो सकते हैं। this धागा पर एक नज़र डालें।
आज ऐसा व्यवहार खतरनाक है क्योंकि कई अन्य व्यापक रूप से उपयोग की जाने वाली भाषा प्रारंभिक/असाइनमेंट के बारे में एक और सम्मेलन का पालन करती है।
पूर्णता के लिए, मुझे बताएं कि फोरट्रान 2003 मानक में आप जिस बिंदु का उल्लेख करते हैं वह सी 1107 में शामिल है: "यदि किसी प्रकार का ऑब्जेक्ट जिसके लिए घटक-प्रारंभिक निर्दिष्ट किया गया है (R444) विनिर्देश-भाग में प्रकट होता है मॉड्यूल का और इसमें अलोक्साबल या पॉइंटर विशेषता नहीं है, ऑब्जेक्ट में SAVE विशेषता होगी। " –
@Alexandros Gezerlis - ठीक है, लेकिन वह पूछ रहा है कि उन्होंने "क्यों" काम किया है, और अब जब मैं उनके प्रश्न को समझता हूं, तो मेरे पास भी यही प्रश्न है :)। – dcp
मुझे पता है, इसलिए मैंने इसे उत्तर के रूप में पोस्ट नहीं किया है। –