これが私のコードです。このコードの出力を明確にする必要があります。
#include <stdio.h>
int main(void )
{
char name1[10] = "Rajan" , name2[10] = "Rajan" ;
char *name3 = "Chennai" , *name4 = "Chennai" ;
printf("\nAddress for name1 and name2 : %p and %p",name1,name2) ;
printf("\nAddress for name3 and name4 : %p and %p",name3,name4) ;
return 0 ;
}
このコードの出力は
Address for name1 and name2 : 0x7fff9e6cbe10 and 0x7fff9e6cbe20
Address for name3 and name4 : 0x400760 and 0x400760
ここで、値のアドレスと は、name1
2name2
つの異なる配列を割り当てたため、異なります。しかし、 と の場合name3
、name4
アドレスは同じなのになぜ変わらないのでしょうか? 別のメモリを作成せず、値に名前を割り当てませChennai
んか? なぜ同じメモリを指しているのですか?