ポインタがp
指す変数を出力する2つのプログラムを作成しました。
最初のプログラム:
#include <stdio.h>
int main (void){
int *p;
int a=5, q;
p=&a;
q=*p;
printf("%d", q);
}
2番目のプログラム:
#include <stdio.h>
int main(void)
{
int a=5;
int*p;
p= (int*)&a;
printf("%d", *p);
return 0;
}
私の質問:
どちらのプログラムも、の値がでa
あるを出力し5
ます。ただし、2番目のプログラムは。のp=(int*)&a;
代わりにを使用しp=&a;
ます。(int*)
ここでキャストすることの意義を教えてもらえますか?
キャスティングは、プログラマーがコンピューターに、何かが1つのタイプであるとコンピューターが考えていても、それを別のタイプとして扱いたいことを伝える方法です。
ただし、ここではaが整数であるため、キャストは役に立ちません。したがって、整数ポインターの場合、aのアドレスをキャストする必要はありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加