LoginSignup
13
13

【C言語 まとめ】〜久々にC言語を書く人のための備忘録〜

Last updated at Posted at 2018-04-16

はじめまして、ますみです!

自己紹介.png

#>>利用方法

C言語を学ぶための記事ではなく、細かい説明を省略し、
久々にC言語を触る人が**コードを思い出したり、検索するための記事**にしました。

  1. 【機能から調べる】 → Qiitaの右側の目次から探してください
  2. 【コードから調べる】 → Command + F / Ctrl + Fで検索してください

1. 基本コード

###・変数の型

コード 変数
void 型なし
char 文字型
int 整数
float (単精度)浮動小数点
double (倍精度)浮動小数点
struct 構造体型
union 共用体型
enum 列挙型

###・演算子

コード 演算
+ 足し算
- 引き算
* 掛け算
/ 割り算
% あまり
&& かつ
ll または
! ではない
== 等しい
> 大なり
< 小なり
>= 以上
<= 以下
!= 等しくない

###・配列
c:array.c int A[3] = {0,1,2};

###・入力
`c:input.c
//scanf()
int a;
scanf("%d", &a);

//getchar() - int型なことに注意
int c;
c = getchar();

//gets() - 廃止
`

###・出力
`c:output.c
//printf()
int a = 0;
printf("%d", a);

//putchar()
int c = 'a';
putchar(c);
`

###・条件分岐
`c:conditon.c
//if文、else文
if(x<0){
printf("lower than 0.");
}else if(x<5){
printf("between 0 and 5");
}else{
printf("bigger than 5");
}

//switch文
switch(c){
case '+':
printf("a+b=%d", a+b);
break;

case '-':
printf("a-b=%d", a-b);
break;

default:
printf("other");
break;
}
`

###・繰り返し
`c:repeat.c
//for文
for(i=0;i<10;i++){
total = total+i;
}

//while文
while(i<10){
total = total+i;
i++;
}

//do-while文
do{
total = total+i;
i++;
}while(i<10);
`

###・break文 / continue文 / goto文
`c:outNest.c
//break文
while(1){
if(x<0){
break;
}
x--;
}
return 0;

//continue文
while(1){
if(x<0){
return 0;
}else{
x--;
continue;
}
}

//goto文
while(1){
if(x<0){
goto labelOut;
}
x--;
}
labelOut: return 0;
`

2. 構造体

`c:structure.c
struct date{
int year;
int month;
int day;
}

struct date today;
today.year = 2018;
today.month = 7;
today.day = 20;

printf("%d / %d / %d", today.year, today.month, today.day);
`

3. 関数

`c:function.c
//sum関数の宣言
int sum(int a, int b);

//main関数
int main(void){
int x = 3;
int y = 5;
printf("%d", sum(x,y));

return 0;
}

//sum関数の定義
int sum(int a, int b){
return a+b;
}
`

###・数学関数 / 数学定数
#include<math.h>をはじめに宣言(インクルード)します。

- 数学関数

コード 関数
sin() 正弦
cos() 余弦
tan() 正接
pow(x,y) べき乗 ( $x^y$ )
fabs() 絶対値
sqrt() 平方根
cbrt() 立方根
exp() 指数関数
log() 自然対数
log10() 底が10の対数

- 数学定数

コード 関数
M_e 自然対数の底e / ネイピア数
M_PI 円周率π
M_SQRT2 $\sqrt{2}$
M_LN2 $\ln 2$

4. 標準入出力

#include<stdio.h>をはじめに宣言(インクルード)します。
標準入出力をするための雛形は次の通りです。

hinaFile.c
#include<stdio.h>

int main(void){
  FILE *fp;

  fp = fopen("data.txt", "r");
  //ファイルの処理
  fclose();

  return 0;
}

・ファイルの読み出し - fgetc() / fscanf()

readFile.c
#include<stdio.h>

int main(void){
  FILE *fp;
  int c, num;

  fp = fopen("data.txt", "r");

  //fgetc()
  c = fgetc(fp);

  //fscanf()
  fscanf(fp, "%d", &num);

  fclose();
  return 0;
}

・ファイルの書き出し - fputc() / fprintf()

writeFile.c
#include<stdio.h>

int main(void){
  FILE *fp;
  int c = 'A';

  fp = fopen("data.txt", "w");

  //fputc()
  fputc(c,fp);

  //fprintf()
  fprintf(fp, "\nMy name is %s", "umi_mori");

  fclose();
  return 0;
}

5. マクロ処理

`c:macro.c
#define PI 3.14

最後に

最後まで読んでくださり、ありがとうございました!
いかがだったでしょうか?

この記事を通して、少しでもあなたの学びに役立てば幸いです!

【仕事の相談はこちら】
お仕事の相談のある方は、下記のフォームよりお気軽にご相談ください。

問い合わせフォームはこちら

もしもメールでの問い合わせの方がよろしければ、下記のメールアドレスへご連絡ください。

info*galirage.com(*を@に変えてご送付ください)

🎁 「生成AI活用の無料相談券」もしくは「生成AIの社内ガイドライン(無料PDF)」を『公式LINE』で配布中 🎁
『生成AIを業務に活用したいけど、どうしたらいいかわからない』といった声を多くいただきます。

Galirageでは公式LINEにて、チャットやオンライン会議で「完全個別の生成AI活用無料相談会」を実施しております!
(期間限定で実施しているため、ご興味ある方はお早めに以下のLINE公式アカウントをご登録ください^^)
https://lin.ee/rvz6lMN

※ 予告なく、キャンペーンを終了する可能性がございますが、ご了承ください。

【業務内容】
具体的には、以下のお仕事を中心に受け付けております!(詳しくはこちら

  1. 受託開発(例:生成AIを使った社内システムの開発)
  2. コンサルティング(例:技術戦略のアドバイス)
  3. 講演(例:社内研修、イベント登壇)

※ 特に「生成AIを使ったシステム開発のご依頼」が多く、ご好評いただいております。

【これまでの相談事例】
以下のようなご相談が多くあります。

🔑 機密情報を漏洩させないための、生成AIのシステム構築をお願いしたい。
🤖 自社データを用いたFAQチャットボットの作り方を知りたい。
💡 ChatGPTを、自分たちの事業にどのように活かせるか、アドバイスやアイデアが欲しい。

おまけ

エンジニアの仲間(データサイエンティストも含む)を増やしたいため、公式LINEを始めました🎉

一緒に仕事をしてくれる方」「友だちとして仲良くしてくれる方」は、友だち追加をしていただけますと嬉しいです!(仲良くなった人たちを集めて、「ボードゲーム会」や「ハッカソン」や「もくもく会」もやりたいなと考えています😆)

とはいえ、みなさんにもメリットがないと申し訳ないので、特典を用意しました!

友だち追加後に、アンケートに回答してくれた方へ「エンジニア図鑑(職種20選)」のPDFをお送りします◎

13
13
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13