28
4iPhone輪講 Lesson9

Cocoa Pro4

Embed Size (px)

Citation preview

Page 1: Cocoa Pro4

第4回iPhone輪講Lesson9

Page 2: Cocoa Pro4

Lesson9C言語の文法

Page 3: Cocoa Pro4

変数

変数の型

型 意味

char 文字

int 整数

float 小数

double 小数

Page 4: Cocoa Pro4

修飾子

修飾子

型につけることで,その意味を少し拡張する

修飾子 意味

signed 符号あり

unsigned 符号なし

short 短い

long 長い

Page 5: Cocoa Pro4

文字

文字を表す型はchar型

char型の変数にはシングルクォーテーション(‘’)を使って代入

char c = ‘a’;

char letter = ‘L’;

Page 6: Cocoa Pro4

整数

整数の為の変数はint型

int i = 0;余白

Page 7: Cocoa Pro4

intのとりうる範囲変数 省略した記述 大きさ とりうる値の範囲

sined int int 32bit -2,147,483,648~2,147,483,647

unsigned int unsigned 32bit 0~4,294,967,295

signed short int short 16bit -32,768~32,767

unsigned short int unsigned short 16bit 0~65,535

signed long int long 32bit -2,147,483,648~2,147,483,647

unsigned long int unsigned long 32bit 0~4,294,967,295

signed long long int long long 64bit -263~263-1

unsigned long long int

unsigned long long

64bit 0~264-1

Page 8: Cocoa Pro4

小数

小数の為の型が,float型とdouble型

(Macでは)float型が32ビット,double型64ビット

float f = 12.2f

double value = 1.0

数字の終わりに「f」をつけるとfloat型,ない場合はdouble型

Page 9: Cocoa Pro4

配列

配列は変数の名前の後に角括弧[ ]で確保する値の数を書く

int ages[12];

12個の整数の値が確保できる

最初の変数に値を設定

ages[0]=24;

値を取り出す

int firstAge = ages[0];

Page 10: Cocoa Pro4

ポインタ

ポインタとは,メモリ上にあるひとまとまりのデータを指し示す為のもの

指し示す為にポインタ変数と呼ばれる変数を使う

Page 11: Cocoa Pro4

文字列

文字列はchar型の変数が集まったもの

文字列を作る為にダブルクォーテーション(””)で囲む

この記述で作った文字列をchar型で受けることになる

char* osName = “MacOSX”;

文字列はcharの配列であり,配列とはひとまとまりのデータ

配列はポインタで受けることができる

Page 12: Cocoa Pro4

NULL値:文字列の終端文字

“MacOSX”という文字列を作った

文字の配列は以下のようになっている

文字は6文字だが,配列は7文字分確保してある

最後の文字はNULLと呼ばれる

NULLはなんでもないものや,どこでもないところを示す

文字列の最後に使われている場合NULL終端文字と呼ばれる

M a c O S X NULL

Page 13: Cocoa Pro4

バックスラッシュ

バックスラッシュは後ろに来る文字を特別な意味に変える\n 改行

\r 復帰(キャリッジリターン)

\t タブ

\” C言語の文字列の中に,ダブルクォーテーションを入れたいときに使う.例:”This is a \” Rock\””

\\ バックスラッシュそのもの

Page 14: Cocoa Pro4

置換子

整数の為の置換子%d

文字の為の置換子%c

小数の為の置換子%f

文字列の為の置換子%s

実行結果

Page 15: Cocoa Pro4

論理演算子

論理値

「ある命題が正しいか否か」を表す値 真 偽

TRUE FALSE

YES NO

1 0

Page 16: Cocoa Pro4

論理演算

論理演算にはAND,OR,NOTの3種類がある

ANDの論理演算子は&&,ORは||,NOTは!

ANDとORは2つの論理値の間で,NOTは1つの値に対しての計算になる

0 1

0 0 0

1 0 1

0 1

0 0 1

1 1 1

AND OR NOT

NOT 1 = 0

NOT 0 = 1

Page 17: Cocoa Pro4

制御文

処理1 条件 条件

処理2 処理1 処理2 処理

YES NO YES

NO

1.順に進む 2.条件分岐 3.繰り返し

Page 18: Cocoa Pro4

制御文

処理1 条件 条件

処理2 処理1 処理2 処理

YES NO YES

NO

1.順に進む 2.条件分岐 3.繰り返し

こういった流れを変えることをプログラムの制御と呼ぶ

プログラミングで制御をおこなうのが制御文である

Page 19: Cocoa Pro4

可変引数

stdio.hにあるprintf関数の宣言をみてみる

パスは/usr/include/stdio.h

引数がconst char*となっていて,その後「...」が続いている

「...」はこの関数に指定できる引数の数は固定でないということを示している

こういった引数の指定の仕方を可変引数という

Page 20: Cocoa Pro4

標準ライブラリ

C言語には標準ライブラリというものが定義されている

標準ライブラリでは多くの便利な関数が提供されている

宣言ファイルは「/sur/include」にある

Page 21: Cocoa Pro4

標準ライブラリstdio.h

結果の出力や,キーボードの入力を受け付ける.ファイルの入出力も担当する.

string.h

文字列を操作する関数を集めたもの

math.h

数学に関する関数を集めたもの

stdlib.h

文字と数値の間で変換をしたり,メモリを確保したりする

Page 22: Cocoa Pro4

構造体

構造体はいくつかの変数をまとめておくためのもの

プログラム中でウィンドウ上の座標を管理する事を考えてみる

座標はx軸,y軸の2つの座標で決定されるので,xとyの2つの変数が必要になる

しかし,この2つは常にペアで使う事になるので,まとめて宣言したい…

Page 23: Cocoa Pro4

構造体

こういった時に構造体が使われる

xとyの変数をまとめたpointという名前の構造体の定義

文法はstruct 構造体名 { フィールド1; フィールド2;...};

Page 24: Cocoa Pro4

構造体

構造体の使い方

定義した構造体は以下のように使う

構造体の変数を宣言するときは,先頭にstructをつけるい必要がある

構造体の変数が持つフィールドにアクセスするには「.」の後ろにフィールドの名前を書く事で,値を設定したり,取り出したりする

Page 25: Cocoa Pro4

構造体

typedefを使った構造体の型の宣言

構造体の変数を宣言する際,いちいち先頭にstructをつけるのは面倒

そういうとき以下のように書く事が出来る

Page 26: Cocoa Pro4

構造体

「typedef」は新しい型を宣言するためのもの

あらかじめ用意されているintやcharといった型以外でも自分で色々な型を定義できる

pointが書かれている位置が構造体の定義の最後に書いてあるのは「構造体を使った型の名前」として使われているため

typedefを使っていない方の構造体の宣言ではpointが「構造体の名前」として使われていた

Page 27: Cocoa Pro4

構造体

typedefを使った構造体の型を使うと以下のようにコードが書ける

pointの前にstructをつけなくて良い

pointをintやcharといった型と同じように使う事が出来る

Page 28: Cocoa Pro4

おわり