C言語基礎2

### 関数
関数: 複数の処理
返り値の型 関数名(引数){
処理;
return
}
C言語は、最初にmain()関数を実行する
main内で使用する関数は、mainよりも上部に書く
プロトタイプ宣言を最上部に記述する

float getMax(float a, float b){
	if(a >= b){
		return a;
	} else {
		return b;
	}
}
void sayHi(void){
	printf("Hi\n");
}
int main(void){
	float result;
	result = getMax(2.3, 5.2);
	printf("%f\n", result);

	sayHi();
	return 0;
}

引数がない場合はvoidをつける

### 三項演算子
返り値 = (条件) ? A : B;

float getMax(float a, float b){
	return (a >= b) ? a : b;
}

### ローカル変数とグローバル変数
※グローバル変数は非推奨

int a = 0;

void f(void){
	a++;
	printf("a:%d\n", a);
}


int main(void){
	f();
	printf("[main]a:%d\n", a);
	return 0;
}

### static
型指定の前に、staticとすると、静的変数となり、値を保持する

void f(void){
	static int a = 0;
	a++;
	printf("a:%d\n", a);
}


int main(void){
	f();
	f();
	f();
	return 0;
}

$ ./dev
a:1
a:2
a:3

### 変数
領域を確保する
なお、variables[]={a,b,c} と書くことができる

int main(void){
        // int sales[] = {200, 405, 302};
	int sales[3];
	sales[0] = 200;
	sales[1] = 400;
	sales[2] = 300;

	printf("%d\n", sales[1]);

	return 0;
}

### 文字列
char型の配列、終端は「\0」
char s[] = {‘a’,’b’,’c’,’\0′};
char s[] = “abc”;

int main(void){
	char s[] = "abc";

	printf("%c\n", s[1]);

	return 0;
}

配列の書き方が原始的というか、他の言語でも仕組み上は同じと考えると、面白いです。