我还在学习 C。我已经实现了一个简单的单词猜测程序。在玩调试时,我看到我的指针实际上指向真实的内存值,但是当我初始化一个 char 数组(不同的)时,指向其他 char 数组的指针也被初始化。这是代码的开头:
char *theword = pickAWord();//returns a word from .dat file
char guess[40]; //guess = 0x003afa94
char guessedWord[20]; //guessedWord = 0x003afa78
char play_again;
char *guessedWordp = guessedWord; //guessedWordp = 0x003afa78
int guessedWordIndex = 0;
int a = strlen(theword)-1;
int found = 0;
int *foundp = &found;
int *hakp = &hak;
int *guessedWordIndexp = &guessedWordIndex;
当我像这样初始化guess char数组时:
for(i=0; i<a; i++){
guess[i*2] = '_';
guess[i*2+1] = ' ';
if(i==a-1) guess[i*2+1] = '\0';
}
突然,*guessedWordp 指针和数组值改变如下:
guessedWordp = 0x003afa78 "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ_ _ _ _ _ _ _"
guessedWord = 0x003afa78 "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ_ _ _ _ _ _ _"
我只是很好奇为什么“_ _ _ _ _ _ _”当我实际初始化它以猜测char数组时,这个添加在guessedWordp指针的末尾(顺便说一下,猜测数组正确地用正确的值初始化)
我正在使用视觉工作室 2010