ポインタについて
今初めてポインタというものを勉強しております。
よろしくお願いします。
◎1----------------------------------
#include<stdio.h>
int main(void)
{
int mydt=1234;
int *pt;
pt=&mydt;
printf("*pt=%d\n",*pt);
printf("&mydt=%p\n",&mydt);
return 0;
}
---------------------------------------
◎1のようにmydtのアドレスをポインタptに代入すれば、このプログラムは正常に動きました。
◎2-----------------------------------
#include<stdio.h>
int main(void)
{
int mydt=1234;
int *pt=&mydt;
printf("*pt=%d\n",*pt);
printf("&mydt=%p\n",&mydt);
return 0;
}
----------------------------------------
◎2で「int *pt=&mydt;」があまりどういう意味かはわかりませんが、これも正常に動きました。
◎3------------------------------------
#include<stdio.h>
int main(void)
{
int mydt=1234;
int *pt;
*pt=&mydt
printf("*pt=%d\n",*pt);
printf("&mydt=%p\n",&mydt);
return 0;
}
--------------------------------------
◎3のように◎2と違って「*pt=&mydt」の代入を後から行うと、「'=' : 'int *__w64 ' から 'int' に変換できません。」といったようなエラーが起きてしまいます。
◎1と◎2の違い、後何故◎3はダメなのかがわかりません。
教えていただけると嬉しいです。
後補足として、配列とポインタについてですが、
◎4------------------------------
char ss[10]="ABCDE";
char *ssp=ss;
---------------------------------
◎5----------------------------
char ss[10]="ABCDE";
char *ssp;
ssp=ss;
--------------------------------
◎4と◎5も同じような事だとは思いますが違いを教えていただけると嬉しいです。
よろしくお願いします。
お礼
とても分かりやすく説明していただき、ありがとうございました。