プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • C言語
  • 【C言語】変数の型、文字列型について
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【C言語】変数の型、文字列型について

03.02

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

主な変数の型について

「消費バイト」については、コンパイラやCPUによってサイズが変更になる可能性があります。確実の実行環境で使われているバイト数が知りたい場合は、「sizeof関数」を使います。

分類 型名 範囲(用途例) 消費バイト
整数 char -127~127(例:家族の人数) 1バイト
整数 int -214783648~214783647(例:年齢等) 4バイト
整数 long -2147483648~2147483647未満の数値(例:世界人口等) 4バイト/8バイト
小数 float 体重
小数 double 特別な事情がない限り、小数はfloatではなくこちらを使う。
真偽値 bool true or false
文字 char 半角の文字

整数系の文字型について

unsigned型

unsigned型をデータ型の先頭に付けることで、プラスのみの値を扱い、プラス方向に値を扱える範囲を増やすことが可能です。

例えば、char型にunsignedをつけると通常は、-128~127の範囲なのですが、「0~255」に拡大することが可能です。

昨今について

昔は、int以下のchar変数も使ったり、2バイト以下の変数も使い分ける必要がありました。

しかし、昨今ではコンピュータの性能が上がっており、整数char型や、short型を使うよりも4バイトのint型を使う方が効率がよくなっているので、少ない桁数の整数の場合でも基本的にはint型を使うようにしましょう。

オーバーフローについて

変数の値に、格納できる値を超えて格納した場合は、オーバーフローが発生します。

C言語の場合は、オーバーフローが発生した場合、変数の値が壊れてしまいますが、プログラムはそのまま続行し続けてしまいます。

非常に危険なので、設計段階でオーバーフローが起きないよう注意しましょう。

浮動小数点(小数)系の文字型について

浮動小数点型は、厳密な計算ができません。

そのため、厳密な計算が必要になってくるような金額の計算等にはfloat型やdouble型は用いてはいけません。

文字列の型

C言語では、半角文字を扱うchar型はありますが、Java等の他のプログラミング言語のように文字列を扱うためのデータ型は用意されていません。

文字列型と同じような物を使いたい場合は、C言語では下記のように記述をします。

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
typedef char String[1024];
 
int main(void)
{
String str = "Hello World!";
printf("%s\n",str);
return 0;
}

typedef宣言

String型を宣言する際に、typedefという構文を使いました。

こちらは、既存の型に対して別名を付けることができる型になります。

上記例でいえば、char型の配列である「char[1024]」に対してStringという別名をつけています。

通常のデータ型以外にも、構造体等様々な別名を付けることができます。

文字列型を使う場合の注意点(というか制約)

上記構文を使えば、C言語でも文字列型を扱うことができますが、いくつかの制約があります。

  • 1024より小さい値を代入してはいけない。
  • 初期化時にしか代入できない。
  • 二つの文字列は、プラス演算子で連結させることができない。
  • 文字列同士を==演算子で比較することができない。
スポンサーリンク
  • 2019 03.02
  • miyabisan2
  • コメントを書く
  • C言語
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2019 03.05

    【C言語】「ヘッダーファイル」、「プリプロセッサ」や「マクロ処理」について

  2. 2019 03.17

    【C言語】ポインタの基本や「ポインタ演算」、「ヌルポインタ」について

  3. 2019 03.06

    【C言語】「ビルド」作業の知識と効率化について(make等)

  4. 2019 03.02

    【C言語】メモリの基本、メモリを扱う関数

  5. 2019 03.05

    【C言語】「コンパイラ」、「リンカ」の役割

  6. 2019 03.16

    【C言語】C言語の特徴、標準ライブラリ、C++の特徴、Visual C++の特徴

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【C#】「WCFサービス」や「サービス志向」について

【C言語】メモリの基本、メモリを扱う関数

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー