Seb日記

日々の体験談について書いていきます。

c言語学習1日目(質問があります!)

 

c言語の学習を始めました!!

 

c言語学習の履歴:

大学三年生(理学部物理学科)の時に、RLC回路の微分方程式などの数値計算をする授業でc言語を使っていました。当時は先生が事前に作ったcソースファイルを使って自分で少しいじって数値計算をやっていたので、コンピュータのことをしっかりと考えてc言語を使っていませんでした。正直一からソースファイルを作れって言われても自力ではほとんど何も出来なかったです。完全に挫折気味でした。

 

 

今回c言語学習をするに至ったきっかけ:

休学後(来年4月)の研究でc言語を用いた流体シミュレーションをするからです。

僕は、今は休学中の身ですが、一応大学院生(機械工学専攻修士一年)をしています。休学する前はc言語を使って研究を始めていました。6月初めに精神的な病気にかかり、半年間(10月~3月)の休学を決意して以来、c言語には触れていませんでした。4月当初に研究室の教授に研究テーマはc言語を使って数値計算をしましょうという指示を頂きました。個人的にcは一年以上使っていなかったので、本当に苦労しました。(その後、自分を追い詰めすぎて病気になってしまったので、ほとんど学部時代のc言語の勘を取り戻さないまま研究はストップしてしまいました。)

休学後に少しでも自分の研究にスムーズに入りたいと思い、c言語の学習を始めました。

 

 

c言語学習の進め方と現在:

学習を始めるあたって、最初は何から手を付けていいか分からなかったので、僕が尊敬する迫 佑樹 (さこ ゆうき)さんのブログを参考にさせて頂きました。その中で様々な科目のおすすめ参考書を紹介している記事がありました。僕はその中のc言語学習の参考書を使おうと決めました。

www.yukisako.xyz

11月初旬に、実際にパソコンを使って学習を始める前にコンピュータのことを知りたいなと思い、「Cプログラミング入門以前」を勉強していました。最近になってやっと、ある程度コンピュータの知識がついてきたと感じたので、本格的にパソコンを使ってプログラムを書いていこうと決めました。

f:id:programingchance:20181204171317j:plain

cプログラミング入門以前

そこで、今日から学習を始めたのがCの絵本 第2版 C言語が好きになる新しい9つの扉」です。

f:id:programingchance:20181204171359j:plain

Cの絵本


次の予定ですが、新・明解C言語 入門編 (明解シリーズ)を使ってたくさん問題を解きながら慣れていきたいと思います。

f:id:programingchance:20181204172853j:plain

新明解c言語入門編

 

 

 

 

今日から実際にパソコンを使って勉強を始めました。

学習した日は、その内容を記録として書いていきます。

「質問」もさせていただくことがあります。

宜しくお願いします。

 

 

 

 

 

 

今日(2018/12/04)学んだこと:
・Visual Studio2017のプロジェクト、ソースファイルの作り方、ビルドの使い方、結果出力の方法
Hello Worldの出力の仕方
・標準ライブラリ関数printfの使い方
  文字列と数値を書式指定して表示
  書式指定の種類
・「変数」の考え方
  宣言の仕方、書き方
・数値型
  整数型と実数型の違い 
  →型(符号なし、符号あり)、バイト数、表現できる数字
・文字型
  ASCⅡコード文字の関係、文字型変数の使い方
・文字列
  配列の考え方(文字列の仕組み)、配列の用意の仕方とメモリ上に用意されるイメージ、
  文字型列データのコピー方法(strcpyとstrcpy_sの使い方)
・printfの書式設定
  桁数の指定、エスケープシーケンスによる表形式での出力

 

 

質問内容

一回目:

int a = "AB";
printf("%d\n", a);
→結果:15166276

 

二回目:

long a = "AB";
printf("%d\n", a);
→結果:15559492

 

三回目:

int a = "AB";
printf("%d\n", a);

→結果:13790020

 

四回目:

long a = "AB";
printf("%d\n", a);

→結果:16149316

 

①変数aをint型、long型で用意したが、それぞれが結果の数値がビルドするたびに変わっていくのは何故か?? 

→intは一回目と三回目、longは二回目と四回目


②intとlongで用意するメモリ容量が4バイトなのに数値が異なるのは何故か??