मैंने यह सरल स्क्रिप्ट लिखी है कि यह समझने के लिए कि कोई संदर्भ क्या है, और मैं चार सरणी पर फंस रहा हूं।चार संदर्भ को समझना
3
0xbffff958
6
0xbffff95c
9
0xbffff960
12
0xbffff964
15
0xbffff968
--------------
a
abcde
b
bcde
c
cde
d
de
e
int
सरणी के साथ
जब मैं &numbers[i]
उपयोग करते हैं, मैं एक अजीब संख्या है कि एक स्मृति स्थान है प्राप्त करते हैं,:
int numbers[5] = {3, 6, 9, 12, 15};
for (int i = 0; i < 5; i++)
{
cout << numbers[i] << endl;
cout << &numbers[i] << endl;
}
cout << "--------------" << endl;
char letters[5] = {'a', 'b', 'c', 'd', 'e'};
for (int i = 0; i < 5; i++)
{
cout << letters[i] << endl;
cout << &letters[i] << endl;
}
और इस उत्पादन है। यह ठीक है; यह वही है जो मैंने समझा है।
लेकिन char
के साथ, मुझे समझ में नहीं आता कि मेरे पास यह आउटपुट क्यों है।
मैं अर्द्ध आश्चर्यचकित हूं कि दूसरे भाग ने नरक और पीठ को तोड़ दिया नहीं है, इस बात पर विचार करते हुए कि कोड कहता है, 'अक्षरों' को समाप्त नहीं किया जाता है। लेकिन फिर, यूबी का मतलब है "कुछ भी हो सकता है, यहां तक कि कार्यक्रम स्पष्ट रूप से काम कर रहा है"। – cHao
@cHao: डीबग मोड में संकलन करते समय कुछ कंपाइलर्स शून्य-बहुत सारी चीज़ें प्रारंभ करते हैं। शायद ओपी "भाग्यशाली" था। –
मुझे आश्चर्य है कि किसी ने अभी तक इसका उल्लेख नहीं किया है लेकिन इसका संदर्भों के साथ कुछ लेना देना नहीं है। आप पॉइंटर्स के बारे में बात कर रहे हैं। –