LogicalInSpace

ITについて

ポインターの疑問

2009-12-29 11:42:50 | C++
struct point
{
  int x;
  int *y;
};

void main()
{
  int a;
  int *b;

  a = 13;

  cout << a << endl;
  cout << &a << endl;

  b = &a;

  cout << *b << endl;
  cout << b << endl;


  point pt;

  pt.x = 21;
  pt.y = &a;

  cout << pt.x << endl;
  cout << *pt.y << endl;

  //point *ppt;

  //cout << ppt->x << endl;
  //cout << ppt->y << endl;
}

(表示結果)
13
0024FE80
13
0024FE80
21
13

私が2つ分からないことがあります。
int *b; と宣言した場合は、アドレスと値を宣言をしているのでしょうか?

int a; ならば、値を宣言をしていると思います。
アドレスは任意の場所なので、毎回に宣言している場合に変わると思います。

本文は b = &a; の後に b について表示しています。
しかし、前に表示しようとすると途中で落ちます。

int *b; の宣言の意味と、b = &a; の前に書くとなぜ落ちるのか?


  //point *ppt;

  //cout << ppt->x << endl;
  //cout << ppt->y << endl;

構造体のポインターのアロー演算子を使用しようと思いましたが(サンプルで作成しただけ)、ppt->x、ppt->y への値の代入方法が分かりません。


C言語は、業務では1度だけしか使ったことはありません。
少し複雑な構造体とポインターになるとどのように考えれば良いかが分からないという意味です。
どなたか、教えて頂けないでしょうか?
よろしくお願いいたします。

Bonanzaのソースコード

2009-12-14 20:54:45 | 将棋ソフト
bonanza_v4.0.3 を紙に出して見ました。
B5の用紙に出して見ると、約400ページありました。 (片面のみ)

最新は、保木さんのHPを見ると、bonanza_v4.1.2 みたいでした。
本格的に、ソースコードを解析をして、将棋ソフトを開発するつもりはないですが、時間がある時にどんな動きになっているかを見てみたいと思いました。

私は、長いソースコードでも紙に出して読む習慣があります。


<注意書き>
当たり前の注意書きをしたいと思います。
以下は専門用語が出てきますが、分からない方は読まないで(スルーして)ください。

プログラムは、パソコンに開発環境がなければ、開発は出来ません。
VC++、BCC などのコンパイラが必要になります。
※コンパイラはフリーでも落ちていますが、初心者は探す方が大変だと思います。
※また、開発環境を整えることも大変だと思います。

プログラムは、最低でも5か月の勉強が必要になります。 (個人差はあります)
通常はDOSのプログラム(最低3カ月)⇒Windowsのプログラム(最低2カ月)を勉強するのが普通です。 最低なので、1-3年以上かかる方もいます。
※期間については、真に受けないでください。 人によって、かなり個人差があります。 出来ない方は、一生出来ない方もいます。
※最低でも5カ月と書いていますが、1から勉強をして5か月で開発が出来れば相当、優秀だと思います。 でも、上には上がいますけど・・・。
同然、プログラムの勉強のみなので、パソコンの操作などは含みません。

普通のユーザーは意識をしませんが、Windowsは、ウィンドウループの仕組みを知らないとプログラムは書けません。

Bonanzaは、C言語で書かれています。
C言語は、手続き型プログラムなので、オブジェクト指向言語ではありません。
C言語なので、ポインター、構造体を知らないと解読は出来ません。
C言語の文法に精通していることと、C言語でWindows(Win32 API)の仕組み精通していることが前提です。

プログラムの用語などを検索をすると、色々と出てきます。
初心者は特に、用語に惑わされるので注意をしていください。

C言語、C++言語、Java、C#言語、JavaScript、PHPなどは、文法が非常に似ていますので注意してください。
C++言語は、C言語を含み以外は、すべて、違う言語です。

ソースコードは、約400ページあるので、それなりのプログラムの経験者を対象にしています。
<注意書き(ここまで)>

11月の検索キーワード

2009-12-02 11:40:38 | その他
11月の検索キーワードです。
2回以上アクセスした物を選んでいます。

<C言語>
c データベース 接続
c言語 平方根 関数
ファイルの存在チェック C言語

<C++言語>
c++ db 接続
c++ データベース 接続

<Visual C++>
vc言語 sqlserver接続
VC ADO
VC DB
vc ado サンプル

VC++ 2008 MFC 入門
DAO Vc++
database vc++
vc++ データベース 接続
vc++ 2008 db
DAO VC++
vc++ access mdb select
VC++ 2008 入門
vc++ db接続
VC++ mdb Source

<C#言語>
dataReader 1行ずつ VC
C# ADO excel 接続

<VB6.0>
vb6.0 データベース 接続
VB6.0とは
visual basic6.0とは

<VB.NET>
vb.net リストボックス IF<> .Item.Add 含む
VB.NET DAO Database 定義
DAO VB.net アクセス2007

<.NET Framework>
datagirdview cell 位置の固定

<WIN32 API>
猫でも windows api
Windows API 猫
猫 win32api

<COBOL>
cobol データベース 環境部
COBOL コンパイラ FREE
cobol 変数 宣言

<データベース>
データベースアクセス ODBC DAO ADO

<OSについて>
OS種類
OSの種類

<数学>
マクローリン展開 平方根
テイラー展開 平方根
数列 1+2+3+4+5+6+7+8+9+10
平方根 テイラー展開

<その他>
xlstart 2003 2007 拡張子
Vista 感想
IE8 ダウンロード 4GB


以上の検索より訪れた方がいました。
比較的に、C/C++言語、データベースが多かったです。

IT、プログラムの質問はQ&Aのコーナーまでお願いします。