なんか、低レベルのプログラミング言語で久々に遊びたくなった。
ちな、低レベルってのは、技術的に劣っているという意味では無く、よりハードウェアに近い抽象化が低い言語です。
ソース
// ConsoleApplication1.cpp : このファイルには 'main' 関数が含まれています。プログラム実行の開始と終了がそこで行われます。
//
//C言語の入出力関数(printfなど)を
//使用するのに必要
#include <stdio.h>
//C++の入出力オブジェクトを
//使用するのに必要
#include <iostream>
void main()
{
int i=0;
int intnohensu;
char* charnopointer;
//int型変数に255を代入
intnohensu = 255;
//明示的にchar型ポインタとして、intのアドレスを代入
charnopointer = (char*)&intnohensu;
printf("255の場合");
printf("intnohensuの値 =%d\n", intnohensu);
printf("intnohensuのアドレス =%p \n", &intnohensu);
printf("charnopointeの値(10進) =%d\n", charnopointer);
for (i = 0; i <= 3; i++) {
printf("charnopointer[%d]のアドレス =%p\n", i, &charnopointer[i]);
printf("charnopointer[%d]の値 =%x\n", i,charnopointer[i]);
}
printf("\n\n");
//int型変数に255を代入
intnohensu = 256;
//明示的にchar型ポインタとして、intのアドレスを代入
charnopointer = (char*)& intnohensu;
printf("256の場合");
printf("intnohensuの値 =%d\n", intnohensu);
printf("intnohensuのアドレス =%p \n", &intnohensu);
printf("charnopointeの値(10進) =%d\n", charnopointer);
for (i = 0; i <= 3; i++) {
printf("charnopointer[%d]のアドレス =%p\n", i, &charnopointer[i]);
printf("charnopointer[%d]の値 =%x\n", i, charnopointer[i]);
}
std::cout << "レッツポインタ遊び!\n";
}
結果
イメージ
こんな感じ