int i;
int j = 123;
i = 100;
i = j;
i = i + 200;
char | 1文字、1Byte(8bit) | character |
int | 整数 | integer |
float | 単精度浮動小数点数 | single-precision floating-point number |
double | 倍精度浮動小数点数 | double-precision floating-point number |
short | 少なくとも16bit | short≦int≦long |
long | 少なくとも32bit | |
signed | 符号付き | $[\,-2^{n-1}, 2^{n-1}-1\,]$ |
unsigned | 符号無し | $[\,0, 2^n-1\,]$ |
定数型 | 基本部分 | 接尾子 | 例 |
int | 1234 | なし | 1234 |
long | l または L | 1234L | |
unsigned | u または U | 1234U | |
double | 小数点(123.4) または指数部(1e-2) | なし | 123.4 |
float | f または F | 123.4F | |
long double | l または L | 123.4L |
記数法 | 接頭子 | 例 |
10進数 | なし | 31 |
8進数 | 0(ゼロ) | 037 |
16進数 | 0xまたは0X | 0x1F |
改行 | LF | \n | バックスラッシュ | \ | \\ | |
水平タブ | HT | \t | 疑問符 | ? | \? | |
垂直タブ | VT | \v | 1重引用符 | ' | \' | |
後退 | BS | \b | 2重引用符 | " | \" | |
復帰 | CR | \r | 8進数 | ooo | \ooo | |
改頁 | FF | \f | 16進数 | hh | \xhh | |
ベル | BEL | \a |
変数(variable)は値を入れる箱のようなもので、メモリ(memory)を利用して値を記憶する。 変数は名前(name)、型(data type)、値(value)という属性を持つ。
extern 変数の型 変数名; /* 外部変数であることの宣言 */
変数の型 変数名;
変数の型 変数名 = 定数式;
int i; int j = 123; i = 100; i = j; i = i + 200; |
変数や式の値を図示すると |
要素の型 配列名[要素の数];
要素の型 配列名[要素の数] = { 要素0, 要素1,,, };
char 配列名[要素の数] = 文字列定数;
char 配列名[] = 文字列定数; /* 要素数は省略可 */
配列名[インデックス]
+ - * / | char | short | int | long | float | double |
char | int | int | int | long | float | double |
short | int | int | int | long | float | double |
int | int | int | int | long | float | double |
long | long | long | long | long | float | double |
float | float | float | float | float | float | double |
double | double | double | double | double | double | double |
ポインタ型 + 整数型 | その数だけ後ろ要素を指すポインタ |
ポインタ型 - 整数型 | その数だけ前の要素を指すポインタ |
ポインタ型 - ポインタ型 | ポインタに挟まれた要素数を表す整数 |
左辺値 = 式
左辺値 op= 式
return 式;
return(式);
(型名)式
char は1Byte(8bit)なので、256種類の値を持つことができる。
現在、殆どのシステムでASCII文字セットが用いられている。
/* ASCII文字とコードを16進数、10進数で表示する */
#include <stdio.h>
main()
{
char c;
for( c = ' '; c <= '~'; c++ )
{
printf("文字:%c 16進数:%2x 10進数:%d\n", c, c, c );
}
}
/* end of ascii.c */
/* 文字と文字列操作 */
/* 標準ヘッダをインクルードする */
#include <stdio.h>
#include <string.h>
main()
{
/* 文字配列の定義 */
char s[10], d[10];
printf("改行なし。");
printf("改行あり。\n");
printf("文字列の表示方法(その1)\n");
printf("%s", "文字列の表示方法(その2)\n");
puts("文字列の表示方法(その3)");
/* Cの配列のインデックスは0(ゼロ)から始まる */
s[0] = 'a'; /* 配列の最初の要素に文字「a」を代入する */
s[1] = 'b';
s[2] = 'c';
s[3] = '\0'; /*文字列の最後を表すNUL文字'\0'を代入する */
puts(s);
printf("%s\n", s );
/* 「puts(s)はprintf("%s\n", s )と同じ。」と表示したい */
printf("puts(s)はprintf(\"%%s\\n\", s )と同じ。\n");
/* 書式文字列の中で「%」を表すには「%%」と重ねる */
printf("d = s; と文字列は代入できないから\n");
printf("strcpy関数を使う。\n");
strcpy( d, s );
puts(d);
}
/* end of string.c */
・ ・ ・ 略式(このWeb資料での書き方) | |
・ ・ ・ 文字表現(\は¥と同じ) | |
・ ・ ・ 10進整数表現 | |
・ ・ ・ 16進整数表現 |
/* 文字配列の初期化 */
#include <stdio.h>
#include <string.h>
main()
{
/* 文字配列の初期化 */
char s[10] = "abc";
char d[20] = "Hello World\n";
/* s = "def"; とはできない! */
puts(s);
puts(d);
printf("上の文字列の長さ:%d\n", strlen(d) );
}
/* end of string2.c */
auto | double | int | struct |
break | else | long | switch |
case | enum | register | typedef |
char | extern | return | union |
const | float | short | unsigned |
continue | for | signed | void |
default | goto | sizeof | volatile |
do | if | static | while |