Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
やさしく知りたいC言語
Search
urunru
May 12, 2012
Technology
1
620
やさしく知りたいC言語
C言語の入門用プレゼンを作ってみました。細かい説明は抜きにしてざっくりと解説します。
urunru
May 12, 2012
Tweet
Share
More Decks by urunru
See All by urunru
はじめてのArduino
urunru
0
78
Other Decks in Technology
See All in Technology
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
370
Rustから学ぶ 非同期処理の仕組み
skanehira
1
130
ガチな登山用デバイスからこんにちは
halka
1
240
「全員プロダクトマネージャー」を実現する、Cursorによる仕様検討の自動運転
applism118
21
10k
20250913_JAWS_sysad_kobe
takuyay0ne
2
170
新アイテムをどう使っていくか?みんなであーだこーだ言ってみよう / 20250911-rpi-jam-tokyo
akkiesoft
0
220
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
390
AWSで始める実践Dagster入門
kitagawaz
1
610
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
910
複数サービスを支えるマルチテナント型Batch MLプラットフォーム
lycorptech_jp
PRO
0
320
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
270
BPaaSにおける人と協働する前提のAIエージェント-AWS登壇資料
kentarofujii
0
130
Featured
See All Featured
Navigating Team Friction
lara
189
15k
We Have a Design System, Now What?
morganepeng
53
7.8k
Gamification - CAS2011
davidbonilla
81
5.4k
Context Engineering - Making Every Token Count
addyosmani
1
39
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Visualization
eitanlees
148
16k
Code Reviewing Like a Champion
maltzj
525
40k
Transcript
やさしく知りたいC言語
こんにちは
こんにちは ここはC言語を学びはじめたい ひとのためのチュートリアルです
こんにちは ここはC言語を学びはじめたい ひとのためのチュートリアルです はじめてでも楽しく学んでいきましょう
もくじ
もくじ 1. 世界最小のプログラム
もくじ 1. 世界最小のプログラム 2. 出力
もくじ 1. 世界最小のプログラム 2. 出力 3. 変数
もくじ 1. 世界最小のプログラム 2. 出力 3. 変数 4. 関数
もくじ 1. 世界最小のプログラム 2. 出力 3. 変数 4. 関数 5.
コメント文
1.世界最小のプログラム
1.世界最小のプログラム 世界最小のプログラムとは いったいどんなものだろうか?
1.世界最小のプログラム 世界最小のプログラム
世界最小のプログラム #include 1.世界最小のプログラム
世界最小のプログラム #include<stdio.h> 1.世界最小のプログラム
世界最小のプログラム #include<stdio.h> main() 1.世界最小のプログラム
世界最小のプログラム #include<stdio.h> main(){ } 1.世界最小のプログラム
世界最小のプログラム #include<stdio.h> main(){ } (実行結果) (なにもしない) 1.世界最小のプログラム
プログラムの意味を知ってみる 1.世界最小のプログラム
世界最小のプログラム #include<stdio.h> main(){ } 1.世界最小のプログラム プログラムの意味を知ってみる
世界最小のプログラム #include<stdio.h> main(){ } プログラミングの道具を インクルード(導入)するための宣言 1.世界最小のプログラム プログラムの意味を知ってみる
世界最小のプログラム #include<stdio.h> main(){ } 使いたい道具の指定 stdio.h ・・・ プログラムで入出力をするための道具類(紙と鉛筆のようなもの) 1.世界最小のプログラム プログラムの意味を知ってみる
世界最小のプログラム #include<stdio.h> main(){ } プログラムを動かすメインとなる部分の宣言 main()・・・ プログラムで一番はじめに実行される部分 1.世界最小のプログラム プログラムの意味を知ってみる
世界最小のプログラム #include<stdio.h> main(){ } プログラムで実行する範囲(ブロック)の指定 1.世界最小のプログラム プログラムの意味を知ってみる
世界最小のプログラム #include<stdio.h> main(){ } プログラムで実行される命令の部分(いまはからっぽ) 1.世界最小のプログラム プログラムの意味を知ってみる
世界最小のプログラム #include<stdio.h> main(){ } プログラムで実行される命令の部分(いまはからっぽ) からっぽなので・・・・・ 1.世界最小のプログラム プログラムの意味を知ってみる
世界最小のプログラム #include<stdio.h> main(){ } プログラムで実行される命令の部分(いまはからっぽ) からっぽなので・・・・・ (実行結果) (なにもしない) 1.世界最小のプログラム プログラムの意味を知ってみる
2.出力
2.出力 文字や数字の表示をしてみよう
文字列を表示するプログラム #include<stdio.h> main(){ } 2.出力
文字列を表示するプログラム #include<stdio.h> main(){ printf(“”) } 2.出力
文字列を表示するプログラム #include<stdio.h> main(){ printf(“”); } 2.出力 ; ・・・ 行末の「;」は1つの命令の終わりを表す
文字列を表示するプログラム #include<stdio.h> main(){ printf(“”); } 2.出力 (実行結果)
文字列を表示するプログラム #include<stdio.h> main(){ printf(“Hello World”); } (実行結果) Hello World 2.出力
文字列を表示するプログラム #include<stdio.h> main(){ printf(“Hello World 彼は太郎です”); } (実行結果) Hello World
彼は太郎です 2.出力
文字列を表示するプログラム #include<stdio.h> main(){ printf(“Hello World ¥n 彼は太郎です”); } (実行結果) Hello
World ↴ 彼は太郎です 2.出力 ¥n・・・ 改行を意味する特殊記号
文字列を表示するプログラム #include<stdio.h> main(){ printf(“Hello World ”); } (実行結果) Hello World
2.出力
文字列を表示するプログラム #include<stdio.h> main(){ printf(“Hello World ”); printf(“彼は太郎です”); } (実行結果) Hello
World 彼は太郎です 2.出力
文字列を表示するプログラム #include<stdio.h> main(){ printf(“Hello World ¥n”); printf(“彼は太郎です”); } (実行結果) Hello
World ↴ 彼は太郎です 2.出力 ¥n・・・ 改行を意味する特殊記号
printf とはなんだろう? printf(“Hello World”); 2.出力
文字列を表示するプログラム #include<stdio.h> main(){ printf(“Hello World”); } printfは文字や数字を表示するための道具 2.出力 printfとはなんだろう?
文字列を表示するプログラム #include<stdio.h> main(){ printf(“Hello World”); } printfは文字や数字を表示するための道具 ()の中身が道具の使用物 2.出力 printfとはなんだろう?
printf(“Hello World”); 道具 2.出力 printfとはなんだろう?
printf(“Hello World”); 道具 使用物 2.出力 printfとはなんだろう?
printf(“Hello World”); 道具 使用物 なにを使って 2.出力 printfとはなんだろう?
printf(“Hello World”); 道具 使用物 どうするか なにを使って 2.出力 printfとはなんだろう?
数字を表示してみよう 2.出力
一般的な方法 #include<stdio.h> main(){ printf(“”); } 2.出力 数字を表示してみよう (実行結果)
一般的な方法 #include<stdio.h> main(){ printf(“2匹の猫がいる”); } (実行結果) 2匹の猫がいる 2.出力 数字を表示してみよう
記号で数字を参照する方法 #include<stdio.h> main(){ printf(“%d匹の猫がいる”,2); } (実行結果) 2匹の猫がいる 2.出力 数字を表示してみよう %d・・・
参照したデータを整数に置換する置換記号
記号で数字を参照する方法 #include<stdio.h> main(){ printf(“%d匹の猫がいる”,2); } (実行結果) 2匹の猫がいる 2.出力 数字を表示してみよう %d・・・
参照したデータを整数に置換する置換記号
#include<stdio.h> main(){ printf(“%d匹の猫がいる”,2); } 2.出力 数字を表示してみよう
#include<stdio.h> main(){ printf(“%d匹の猫がいる”,2); } #include<stdio.h> main(){ printf(“2匹の猫がいる”); } 2.出力 数字を表示してみよう
なぜ記号で数字を参照する? printf(“%d匹の猫がいる”,2); 2.出力 数字を表示してみよう
なぜ記号で数字を参照する? printf(“%d匹の猫がいる”,2); 直接書いた方がいいんじゃない? printf(“2匹の猫がいる”); 2.出力 数字を表示してみよう
いいえ 2.出力 数字を表示してみよう
変数を使うときに便利だから 置き換えます 2.出力 数字を表示してみよう
3.変数
3.変数 数値や名前を記録してみる
• 変数はデータを記憶する 3.変数
• 変数はデータを記憶する 3.変数 100 太郎 3.14
• 変数はデータを記憶する 3.変数 100 太郎 3.14
• 変数はデータを記憶する • 変数には型(形式)がある 3.変数 100 太郎 3.14
• 変数はデータを記憶する • 変数には型(形式)がある 3.変数 100 太郎 3.14 int
• 変数はデータを記憶する • 変数には型(形式)がある 3.変数 100 太郎 3.14 int char
double • 変数はデータを記憶する • 変数には型(形式)がある 3.変数 100 太郎 3.14 int
char
• 変数はデータを記憶する • 変数には型(形式)がある 3.変数 100 太郎 3.14 int char
double float
• 変数はデータを記憶する • 変数には型(形式)がある 3.変数 100 太郎 3.14 int 整数を記憶
char double float
• 変数はデータを記憶する • 変数には型(形式)がある 3.変数 100 太郎 3.14 int 整数を記憶
文字を記憶 char double float
• 変数はデータを記憶する • 変数には型(形式)がある 3.変数 100 太郎 3.14 int 整数を記憶
文字を記憶 小数を記憶 (大きい小数) char double float
• 変数はデータを記憶する • 変数には型(形式)がある 3.変数 100 太郎 3.14 int char
整数を記憶 文字を記憶 小数を記憶 (大きい小数) 小数を記憶 (小さい小数) double float
整数を記憶する 3.変数
記録した整数を表示するプログラム #include<stdio.h> main(){ } 3.変数 整数を記憶する
3.変数 整数を記憶する 記録した整数を表示するプログラム #include<stdio.h> main(){ int i ; }
3.変数 整数を記憶する 記録した整数を表示するプログラム #include<stdio.h> main(){ int i ; i =
100 ; }
3.変数 整数を記憶する 記録した整数を表示するプログラム #include<stdio.h> main(){ int i ; i =
100 ; printf(“%d点です”, i ); }
3.変数 整数を記憶する 記録した整数を表示するプログラム #include<stdio.h> main(){ int i ; i =
100 ; printf(“%d点です”, i ); } (実行結果) 100点です
プログラムの意味を知ってみる 3.変数
記録した整数を表示するプログラム #include<stdio.h> main(){ int i ; i = 100 ;
printf(“%d点です”, i ); } int型は整数を記録する形式 3.変数 プログラムの意味を知ってみる
記録した整数を表示するプログラム #include<stdio.h> main(){ int i ; i = 100 ;
printf(“%d点です”, i ); } 作りたい変数の名前を決める 3.変数 プログラムの意味を知ってみる i
記録した整数を表示するプログラム #include<stdio.h> main(){ int i ; i = 100 ;
printf(“%d点です”, i ); } 値を代入する変数を選ぶ 3.変数 プログラムの意味を知ってみる i
記録した整数を表示するプログラム #include<stdio.h> main(){ int i ; i = 100 ;
printf(“%d点です”, i ); } 「=」は「代入」を意味する 3.変数 プログラムの意味を知ってみる i
記録した整数を表示するプログラム #include<stdio.h> main(){ int i ; i = 100 ;
printf(“%d点です”, i ); } 変数に代入する値を指定 3.変数 プログラムの意味を知ってみる i 100
記録した整数を表示するプログラム #include<stdio.h> main(){ int i ; i = 100 ;
printf(“%d点です”, i ); } printfで・・・ 3.変数 プログラムの意味を知ってみる i 100
記録した整数を表示するプログラム #include<stdio.h> main(){ int i ; i = 100 ;
printf(“%d点です”, i ); } 変数の値を参照 3.変数 プログラムの意味を知ってみる i 100
記録した整数を表示するプログラム #include<stdio.h> main(){ int i ; i = 100 ;
printf(“%d点です”, i ); } 3.変数 プログラムの意味を知ってみる i 100 (実行結果) 100点です
変数の使い方 1. 型を選ぶ int 3.変数 プログラムの意味を知ってみる
変数の使い方 1. 型を選ぶ 2. 名前を決める int number; 3.変数 プログラムの意味を知ってみる
変数の使い方 1. 型を選ぶ 2. 名前を決める 3. データを代入する int number; number
= 50 ; 3.変数 プログラムの意味を知ってみる
変数の使い方 1. 型を選ぶ 2. 名前を決める 3. データを代入する int number; number
= 50 ; プログラムの鉄則 3.変数 プログラムの意味を知ってみる
文字を記憶する 3.変数
記録した文字を表示するプログラム #include<stdio.h> main(){ char name ; name = ‘A’ ;
printf(“彼は%cです”, name ); } 3.変数 文字を記憶する
3.変数 文字を記憶する 記録した文字を表示するプログラム #include<stdio.h> main(){ char name ; name =
‘A’ ; printf(“彼は%cです”, name ); } char型は文字を記録する形式 name
3.変数 文字を記憶する 記録した文字を表示するプログラム #include<stdio.h> main(){ char name ; name =
‘A’ ; printf(“彼は%cです”, name ); } 変数に文字を記憶する name A
3.変数 文字を記憶する 記録した文字を表示するプログラム #include<stdio.h> main(){ char name ; name =
‘A’ ; printf(“彼は%cです”, name ); } printfで・・・ name A
3.変数 文字を記憶する 記録した文字を表示するプログラム #include<stdio.h> main(){ char name ; name =
‘A’ ; printf(“彼は%cです”, name ); } 変数を参照 name A %c・・・ 参照したデータを文字に置換する置換記号
3.変数 文字を記憶する 記録した文字を表示するプログラム #include<stdio.h> main(){ char name ; name =
‘A’ ; printf(“彼は%cです”, name ); } name A (実行結果) 彼はAです
小数を記憶する 3.変数
記録した小数を表示するプログラム( 型) #include<stdio.h> main(){ double pi ; pi = 3.14
; printf(“円周率は%fです”, pi ); } 3.変数 小数を記憶する
記録した小数を表示するプログラム( 型) #include<stdio.h> main(){ double pi ; pi = 3.14
; printf(“円周率は%fです”, pi ); } double型は小数を記録する形式 3.変数 小数を記憶する pi
記録した小数を表示するプログラム( 型) #include<stdio.h> main(){ double pi ; pi = 3.14
; printf(“円周率は%fです”, pi ); } 変数に値を代入 3.変数 小数を記憶する pi 3.14
3.変数 小数を記憶する 記録した小数を表示するプログラム( 型) #include<stdio.h> main(){ double pi ; pi
= 3.14 ; printf(“円周率は%fです”, pi ); } printfで・・・ pi 3.14
3.変数 小数を記憶する 記録した小数を表示するプログラム( 型) #include<stdio.h> main(){ double pi ; pi
= 3.14 ; printf(“円周率は%fです”, pi ); } 変数を参照 pi 3.14 %f・・・ 参照したデータを小数に置換する置換記号
3.変数 小数を記憶する 記録した小数を表示するプログラム( 型) #include<stdio.h> main(){ double pi ; pi
= 3.14 ; printf(“円周率は%fです”, pi ); } (実行結果) 円周率は3.14です pi 3.14
3.変数 小数を記憶する 小数を記憶するのはfloat型も同じ( 型) #include<stdio.h> main(){ float pi ; pi
= 3.14 ; printf(“円周率は%fです”, pi ); } (実行結果) 円周率は3.14です pi 3.14
3.変数 小数を記憶する double型 と float型 はどっちがいいのか
3.変数 小数を記憶する double型 と float型 はどっちがいいのか double型のほうがいい
3.変数 小数を記憶する double型のメリット double型のデメリット
3.変数 小数を記憶する double型のメリット • 精度が高い double型のデメリット
3.変数 小数を記憶する double型のメリット • 精度が高い • 計算が速い double型のデメリット
3.変数 小数を記憶する double型のメリット • 精度が高い • 計算が速い double型のデメリット • 大きな容量がいる
3.変数 小数を記憶する double型のメリット • 精度が高い • 計算が速い double型のデメリット • 大きな容量がいる
しかし近年はコンピュータの容量が大きいので 気にしなくてもいい
3.変数 小数を記憶する double型のメリット • 精度が高い • 計算が速い double型のデメリット • 大きな容量がいる
しかし近年はコンピュータの容量が大きいので 気にしなくてもいい double型が一般的
5.コメント文
5.コメント文 プログラムに注釈をつけてみる
#include<stdio.h> main(){ printf(“Hello World”); } 5.コメント文 (実行結果) Hello World
#include<stdio.h> // インクルード main(){ printf(“Hello World”); } 5.コメント文 (実行結果) Hello
World
#include<stdio.h> // インクルード main(){ // メイン部分 printf(“Hello World”); } 5.コメント文
(実行結果) Hello World
#include<stdio.h> // インクルード main(){ // メイン部分 printf(“Hello World”); // 文字表示
} 5.コメント文 (実行結果) Hello World
#include<stdio.h> // インクルード main(){ // メイン部分 printf(“Hello World”); // 文字表示
} ↑ コメント文は実行結果から無視される 5.コメント文 (実行結果) Hello World
コメントアウト // printf(“Hello World”); コメントアウト ・・・ プログラムの命令をコメント化して実行しないようにすること 5.コメント文
#include<stdio.h> main(){ printf(“Hello World¥n”); printf(“彼は太郎です¥n”); printf(“コメントアウトの練習です”); } (実行結果) Hello World
↴ 彼は太郎です↴ コメントアウトの練習です 5.コメント文 コメントアウト
#include<stdio.h> main(){ // printf(“Hello World¥n”); printf(“彼は太郎です¥n”); printf(“コメントアウトの練習です”); } 5.コメント文 コメントアウト
(実行結果) 彼は太郎です↴ コメントアウトの練習です
#include<stdio.h> main(){ // printf(“Hello World¥n”); // printf(“彼は太郎です¥n”); printf(“コメントアウトの練習です”); } 5.コメント文
コメントアウト (実行結果) コメントアウトの練習です
#include<stdio.h> main(){ // printf(“Hello World¥n”); // printf(“彼は太郎です¥n”); // printf(“コメントアウトの練習です”); }
5.コメント文 コメントアウト (実行結果)
#include<stdio.h> main(){ // printf(“Hello World¥n”); // printf(“彼は太郎です¥n”); // printf(“コメントアウトの練習です”); }
コメント化することで命令を無視できる 5.コメント文 コメントアウト (実行結果)
もうひとつのコメント文 /* コメント文 */ 5.コメント文
#include<stdio.h> main(){ printf(“Hello World”); } 5.コメント文 もうひとつのコメント文 (実行結果) Hello World
#include<stdio.h> /* インクルード */ main(){ printf(“Hello World”); } (実行結果) Hello
World 5.コメント文 もうひとつのコメント文
#include<stdio.h> /* インクルード */ main(){ /* メイン部分 */ printf(“Hello World”);
} (実行結果) Hello World 5.コメント文 もうひとつのコメント文
#include<stdio.h> /* インクルード */ main(){ /* メイン部分 */ printf(“Hello World”);
/* 文字表示 */ } (実行結果) Hello World 5.コメント文 もうひとつのコメント文
#include<stdio.h> /* インクルード */ main(){ /* メイン部分 */ printf(“Hello World”);
/* 文字表示 */ } #include<stdio.h> // インクルード main(){ // メイン部分 printf(“Hello World”); // 文字表示 } 3.コメント文 もうひとつのコメント文
printf(“Hello World”); // 文字表示 と printf(“Hello World”); /* 文字表示 */
3.コメント文 もうひとつのコメント文
printf(“Hello World”); // 文字表示 と printf(“Hello World”); /* 文字表示 */
何が違うのか 3.コメント文 もうひとつのコメント文
printf(“Hello World”); // 文字表示 と printf(“Hello World”); /* 文字表示 */
何が違うのか コメントアウトすればわかる 3.コメント文 もうひとつのコメント文
// をつかったコメントアウト #include<stdio.h> main(){ printf(“Hello World¥n”); printf(“これは猫です¥n”); printf(“コメントアウトの練習です”); } 5.コメント文
もうひとつのコメント文
// をつかったコメントアウト #include<stdio.h> main(){ // printf(“Hello World¥n”); // printf(“これは猫です¥n”); //
printf(“コメントアウトの練習です”); } 5.コメント文 もうひとつのコメント文
// をつかったコメントアウト #include<stdio.h> main(){ // printf(“Hello World¥n”); // printf(“これは猫です¥n”); //
printf(“コメントアウトの練習です”); } コメントアウトが3回必要 5.コメント文 もうひとつのコメント文
/**/ をつかったコメントアウト #include<stdio.h> main(){ printf(“Hello World¥n”); printf(“これは猫です¥n”); printf(“コメントアウトの練習です”); } 5.コメント文
もうひとつのコメント文
/**/ をつかったコメントアウト #include<stdio.h> main(){ /* printf(“Hello World¥n”); printf(“これは猫です¥n”); printf(“コメントアウトの練習です”); */
} 5.コメント文 もうひとつのコメント文
/**/ をつかったコメントアウト #include<stdio.h> main(){ /* printf(“Hello World¥n”); printf(“これは猫です¥n”); printf(“コメントアウトの練習です”); */
} コメントアウトが1回ですむ 5.コメント文 もうひとつのコメント文
つまり 5.コメント文 もうひとつのコメント文
つまり // は1行だけ 5.コメント文 もうひとつのコメント文
つまり // は1行だけ /**/は複数行 5.コメント文 もうひとつのコメント文
つまり // は1行だけ /**/は複数行 場合に応じて使い分ける 5.コメント文 もうひとつのコメント文