2012-01-24 11 views
8

मैं सी ++ में एक औसत प्रोग्रामर हूँ, और आमतौर पर हर हालत में संकेत से बचें। लेकिन मैंने हाल ही में कुछ एपीआई का उपयोग करना शुरू कर दिया है, जो कि उनमें से सिर्फ भरे हुए हैं। और ईमानदारी, वे एक बहुत बेहतर काम करने के लिए, अगर मैं सिर्फ वही रास्ता नीचे जारी है, कि के रूप में इरादा/एपीआई के लेखक के अनुसार लगाए गए लगते हैं।सी ++ में, एक एक्सेल वर्कशीट में कक्ष संदर्भ की तरह संकेत दिए गए हैं?

फॉर्म और फ़ंक्शन में, लेकिन स्पष्ट रूप से वाक्यविन्यास नहीं - क्या "पॉइंटर्स" को माइक्रोसॉफ्ट एक्सेल में "सेल रेफरेंस" के समान "कुछ हद तक" देखा जा सकता है?

माइक्रोसॉफ्ट एक्सेल डब्ल्यू/वीबी के साथ मेरे पास कई वर्षों का अनुभव है। जब मैं एक्सेल का उपयोग करने की बात आती हूं, तो मैं "फॉर्मूला/रेफरेंस जुंकी" का भी प्रकार हूं, इसलिए विचार की यह ट्रेन मुझे समझ में आता है। मैं सिर्फ यह जानना चाहता हूं कि क्या मैं सही दिशा में "अभिषेक" हूं।

धन्यवाद!

+2

मुझे यह कहने में खेद है कि अगर आप पॉइंटर्स के बारे में उलझन में हैं तो आप * औसत * सी ++ प्रोग्रामर नहीं हैं। लेकिन रखो! सी ++ एक अद्भुत भाषा है जो आपको कंप्यूटर विज्ञान के बारे में बहुत कुछ सिखाएगी। – log0

+1

@Ugo - सी ++ में उपयोगी और कुशल कोड लिखना संभव है, बिना किसी पॉइंटर का उपयोग किए। यदि आपके पास साझा करने के लिए सार्थक कुछ भी नहीं है, तो अपने व्यवसाय को ध्यान में रखना भी संभव है। – tahwos

उत्तर

9

एक्सेल में एक सेल संदर्भ एक स्ट्रिंग है जो कार्यपुस्तिका में एक निश्चित स्थान इंगित करता है (या, कुछ परिस्थितियों में, एक और कार्यपुस्तिका)।

सी ++ में एक पॉइंटर मेमोरी पता है। स्मृति पता एक संख्या है (कुछ और नहीं!) जो आभासी रैम में एक निश्चित स्थान का पता लगाता है।

तो हाँ, वे वास्तव में नहीं बल्कि समान हैं। मैं इस बात पर बात करके अपने परेड पर बारिश करने के लिए तैयार था कि दोनों कितने अलग हैं। लेकिन समानता काम करता है।

जब आप एक सूचक "अव्यवस्था" करते हैं, तो आप स्मृति में उस स्थान पर जा रहे हैं जो यह इंगित करता है। एक्सेल में आप वास्तव में सेल संदर्भों को "अव्यवस्था" नहीं करते हैं। लेकिन काफी करीब है।

जब आप int y = 4; int* x = &y; कहते हैं, तो यह बी 1 में "4" युक्त सेल बनाने की तरह है, और फिर दूसरा सेल जिसमें "= बी 1" होता है।

+0

आपके उत्तर में आखिरी वाक्य, मुझे इस तरह से पहली बार सोचने के लिए मिला है - क्योंकि मैं हर समय ऐसा करता हूं ("= बी 1")। आपके उत्तर में दूसरी वाक्य, मेरे "असंबद्धता" की तरह है जो मेरे प्रश्न को प्रेरित करती है - एक्सेल में एक सेल संदर्भ, एक संख्या "और अक्षर" (कुछ भी नहीं) है, जो वर्कशीट में एक निश्चित स्थान का पता लगाता है। << मेरा सादृश्य है। मुझे आपका जवाब पसंद है, धन्यवाद! – tahwos

+0

कक्ष संदर्भ पर एक संदर्भ संदर्भ पर विचार करें। एक्सेल कोड में संभवतः एक ऐसा फ़ंक्शन होता है जो इसे वास्तविक सेल संदर्भ में परिवर्तित करता है, संभावित हस्ताक्षर: 'सेल * FindRef (char const * ref)'। यह नाम संदर्भ स्प्रेडशीट डोमेन में है, जबकि सूचक संदर्भ स्मृति डोमेन में है, लेकिन वे दोनों एक ही बात का संदर्भ देते हैं। –

+0

@ edA-qa mort-ora-y, मेरा मतलब यह सचमुच इतना नहीं था, लेकिन इनपुट के लिए धन्यवाद। – tahwos

0

मुझे लगता है कि एक उचित सादृश्य है।

0

एक पॉइंटर मेमोरी के पते के अलावा कुछ भी नहीं है जिसमें कुछ (या कुछ नहीं) है।

भले ही सेल में वास्तव में कोई डेटा है, यह पता है, सेल के लिए एक सूचक के रूप में सोचा जा सकता है।

ध्यान दें कि सेल स्वयं सूचक नहीं है।

1

कई समानताएं हैं जो वसंत को ध्यान में रखते हैं, लेकिन क्लासिक जब मैंने पहली बार कंप्यूटर प्रोग्रामिंग सीखा तो मेल रूम में मेल बॉक्स थे। टॉम, डिक और हैरी लेबल वाले मेल बॉक्स की कल्पना करें।

  • टॉम की मेल बॉक्स में, एक लिफाफा है कि वहाँ डिक मेल बॉक्स में एक सुराग है का कहना है कि जगह
  • डिक मेल बॉक्स, एक लिफाफा कि कहते हैं खजाना हैरी के मेल बॉक्स में है जगह में
  • हैरी के मेल बॉक्स में , आप $ 100 डॉलर डाल दिया! याहू!

कंप्यूटर प्रोग्रामिंग में, टॉम, डिक और हैरी सभी मेमोरी पते हैं। पहले दो में पॉइंटर्स होते हैं, तीसरे, में संख्यात्मक मान होता है। टॉम या डिक के मेलबॉक्स में लिफाफा खोलना dereferencing पॉइंटर्स की तरह हैं।

हम इस बारे में:

int harry = 100; 
int *dick = &harry; 
int **tom = &dick; 

तो, ** टॉम == * डिक == हैरी == 100 टॉम जबकि हैरी के लिए सूचक के लिए सूचक है। और डिक हैरी के लिए एक सूचक है।

0

नहीं, वास्तव में नहीं। पॉइंटर्स को अनुक्रमित किया जा सकता है, और वे भी अमान्य हो सकते हैं, और मुझे विश्वास है कि इनमें से कोई भी चीज एक्सेल कोशिकाओं के लिए सच नहीं है।

+0

दोनों एक्सेल में सच हैं। आप कोशिकाओं की एक श्रृंखला, या यहां तक ​​कि एक सेल की सामग्री से भी अनुक्रमणित कर सकते हैं। अमान्य कक्ष संदर्भ त्रुटियों के रूप में प्रदर्शित होते हैं - #VALUE !, # डेटा !, आदि – tahwos

संबंधित मुद्दे