1

これがプログラムです。文字列のすべての文字を1つずつ出力するように記述します。ただし、配列の個々のブロックのアドレスも出力します。問題は、すべてのブロックのアドレスが同じであることです。なんで?誰か知っていますか?

#include<stdio.h>
int main()
{
    char enter[]="Kinsman";
    char *ptr;  
    ptr=enter;
    int i=0;
    while(*ptr!='\0')
    {
        printf("%c%p\n",*ptr,&ptr);
        ptr++;
        for(i=0;i<=100000000;i++);
    }
return 0;
}
4

3 に答える 3

4

実際のポインターのアドレスを出力するためです。

を使用&ptrすると、実際のポインターのアドレスが取得されますが、指している場合のアドレスは取得されません。アンパサンド (address-of operator &)を削除して、 ptr.

于 2013-10-30T10:50:53.870 に答える