少し前から文字列とポインタがよくわからなくて復習し始めたtomo.xxxです。
また、勉強していてわからないことがあったので、どなたか教えていただけると幸いです。
#include <stdio.h>
int main(void)
{
int i;
char *str[3];
str[0] = "qwertyu";
str[1] = "asdfghj";
str[2] = "zxcvbnm";
for(i=0; i<3; i++){
printf("%s %p\n", str[i], &str[i]);
}
return 0;
}
出力結果:
qwertyu 0x28ac50
asdfghj 0x28ac54
zxcvbnm 0x28ac58
このプログラムの出力結果のアドレスの差(例えば0x28ac50と0x28ac54)がなぜ4バイトなのかがよくわからないです。
僕はここは文字が7つとNULL文字をあわせて文字列の大きさは8バイトなので差は8バイトになるのでは?と思ったのですが、違うのでしょうか?