मैं कोड की निम्न पंक्ति के बारे में उलझन में हूँ:सरणी सरणियों चार को
char* words[] = { "aaa", "bbbb", "ccccc", "dddddd" };
तरह से मैं समझता हूँ, प्रत्येक शब्द पहले संग्रहीत किया जाता है और उसके बाद सरणी words
की प्रत्येक स्थिति पहले तो इंगित करेगा प्रत्येक शब्द का चरित्र। इन तारों को कैसे संग्रहीत किया जाता है? क्या यहां गतिशील आवंटन चल रहा है या क्या ये शब्द ढेर पर संग्रहीत हैं?
यदि वे ढेर पर संग्रहीत हैं, तो वे किस तरह से संग्रहीत हैं? उदाहरण के लिए, अगर मैं नीचे के रूप में words
की सामग्री में से कुछ प्रिंट:
#include <stdio.h>
int main() {
char* words[] = { "aaa", "bbbb", "ccccc", "dddddd" };
printf("\n\n(*words)[0] = %s", words[0]);
printf("\n\n(*words)[0]+1 = %s", words[0]+1);
return 0;
}
बजाय मुद्रण
aaa
और
bbbb
की
, मैं क्या मिल aaa
और aa
है। मैं वास्तव में समझ नहीं पा रहा हूं कि इसके कारण क्या है, जिस तरह से मैं इसे देखता हूं, words[0]+1
स्ट्रिंग bbbb
को इंगित करना चाहिए और aaa
के दूसरे अक्षर पर नहीं होना चाहिए। यहाँ क्या हो रहा है?
आप भ्रमित 'शब्द हैं [0] + 1',' (शब्द +1) [0] 'और' शब्द [1] '? –
'और शब्द [0] + 1' – oldrinb