「C言語/関数」の版間の差分

削除された内容 追加された内容
syntaxhighlight
261 行
// static変数の使用例(コンパイルできる)
#include <stdio.h>
#include <stdlib.h> // 「続行するには何かキーを押してください . . .」を表示するのに必要。
 
void kansuu(void) {
int b = 0;
static int c = 0;
b = b + 1;
c = c + 1;
 
printf("b = %d ,c = %d \n\n" , b, c);
}
 
int main(void) {
kansuu();
kansuu();
system("pause");// 「続行するには何かキーを押してください . . .」の待機命令
 
system("pause"); // 「続行するには何かキーを押してください . . .」の待機命令
return 0;
 
return 0;
}
</syntaxhighlight>
300 行
// static宣言でエラーになる例1
#include <stdio.h>
#include <stdlib.h> // 「続行するには何かキーを押してください . . .」を表示するのに必要。
 
void kansuu(void) {
int b = 0;
static int c = 0;
b = b + 1;
c = c + 1;
}
 
int main(void) {
kansuu();
printf("b = %d ,c = %d \n\n", b,
printf("b = %d ,c = %d \n\n" , b, c); // このprintf関数がstatic宣言されたcにアクセスできない
 
kansuu();
printf("b = %d ,c = %d \n\n" , b,
c); // このprintf関数がstatic宣言されたcにアクセスできない
 
system("pause"); // 「続行するには何かキーを押してください . . .」の待機命令
kansuu();
printf("b = %d ,c = %d \n\n" , b, c); // このprintf関数がstatic宣言されたcにアクセスできない
system("pause");// 「続行するには何かキーを押してください . . .」の待機命令
 
return 0;
}
</syntaxhighlight>
331 ⟶ 332行目:
// static宣言でエラーになる例2
#include <stdio.h>
#include <stdlib.h> // 「続行するには何かキーを押してください . . .」を表示するのに必要。
 
void kansuu(void) {
b = b + 1; // ここでエラー発生。bが何かを判断できない
c = c + 1;
}
 
int main(void) {
int b = 0; // main関数で定義を行った場合
static int c = 0;
 
kansuu();
printf("b = %d ,c = %d \n\n", b,
c); // このprintf関数がstatic宣言されたcにアクセスできない
 
kansuu();
printf("b = %d ,c = %d \n\n", b,
c); // このprintf関数がstatic宣言されたcにアクセスできない
 
system("pause"); // 「続行するには何かキーを押してください . . .」の待機命令
 
return 0;
}
</syntaxhighlight>
409 ⟶ 412行目:
//例 グローバル変数とローカル変数
 
int g; // gはグローバル変数
 
int main(void)
{
int l; // lはローカル変数
}
</syntaxhighlight>
585 ⟶ 588行目:
int function(int *a, int *b)
{
*a = 1234;
*b = 5678;
}
 
644 ⟶ 647行目:
void swap(int a, int b){
int x;
x = a;
a = b;
b = x;
}
 
int main(){
int a = 1, b = 2;
printf("swap前のa=%d, b=%d\n", a, b);
swap(a, b);
673 ⟶ 676行目:
void swap(int *a, int *b){
int x;
x = *a;
*a = *b;
*b = x;
}
 
int main(){
int a = 1, b = 2;
printf("swap前のa=%d, b=%d\n", a, b);
swap(&a, &b);
709 ⟶ 712行目:
int sum(int *array, int size)
{
int s = 0;
for(int i = 0; i < size; ++i)
s += array[i];
return s;
}
717 ⟶ 720行目:
int main(void)
{
int a[10] = {2,3,5,7,11,13,17,19,23,29};
int s = 0;
s = sum(a, 10);
 
printf("%d\n", s);