2.3 定数 K&R プログラミング言語C
2009年12月15日
2.3 定数
#include <stdio.h> int main(int argc, char *argv[]) { printf("%d\n", 1234); /* 整数定数 */ printf("%ld\n", 1234L); /* long 定数 */ printf("%d\n", 12345678901234567); /* 大きすぎる整数 */ printf("%ld\n", 12345678901234567); /* long 定数 */ printf("%u\n", 1234u); /* 符号無し定数 unsigned */ printf("%ld\n", 1234ul); /* 符号無し long 定数 */ printf("%f\n", 1234.0); /* double 定数 */ printf("%f\n", 1234.0f); /* float 定数 */ printf("%d\n", 037); /* 31 の 8進表記 */ printf("%d\n", 0x1f); /* 31 の 16進表記 */ printf("%lu\n", 0xful); /* 15 の 10進表記 unsigned long 定数 */ printf("tab%ccharacter.\n", '\011'); /* 水平タブの8進表記 */ printf("tab%ccharacter.\n", '\x09'); /* 水平タブの16進表記 */ return 0; }
実行結果
$ ./const 1234 1234 1567312775 1567312775 1234 1234 1234.000000 1234.000000 31 31 15 tab string. tab string.
文字定数はコンパイル時に連結することができる。
#include <stdio.h> int main(int argc, char *argv[]) { char *str = "hello," " world!\n" "this is" " a long text."; printf("%s\n", str); return 0; }
実行結果
$ ./string hello, world! this is a long text.
文字列の配列のサイズと文字列長(strlen
による)は '\0'
の分だけ異なる。
#include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { char str[6]; str[0] = 'h'; str[1] = 'e'; str[2] = 'l'; str[3] = 'l'; str[4] = 'o'; str[5] = '\0'; printf("%s 's length is %d\n", str, strlen(str)); return 0; }
実行結果
$ ./str_length hello 's length is 5
列挙定数(数え上げ定数)で値を自動的に与える。
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { enum boolean { NO, YES }; enum month { JAN = 1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC }; printf("NO => %d, YES => %d\n", NO, YES); printf("september is %dth month.\n", SEP); return 0; }
実行結果
$ ./enum NO => 0, YES => 1 september is 9th month.
プログラミング言語C 第2版 ANSI規格準拠
posted with amazlet at 09.11.27
B.W. カーニハン D.M. リッチー
共立出版
売り上げランキング: 9726
共立出版
売り上げランキング: 9726