学点C语言(18):数据类型

1. printf 枚举可显示枚举的序号:

#include <stdio.h>

int main(void)
{
  enum ABC{AAA,BBB,CCC};

  enum ABC e1,e2,e3;

  e1 = AAA;
  e2 = BBB;
  e3 = CCC;

  printf("%d, %d, %d\n", e1, e2, e3);
  getchar();
  return 0;
}

2. 定义枚举时可同时定义变量:

#include <stdio.h>

int main(void)
{
  enum ABC{AAA,BBB,CCC} e1=BBB, e2=BBB+1, e3=e2-2;

  printf("%d, %d, %d\n", e1, e2, e3);
  getchar();
  return 0;
}

3. 同时定义变量时, 你甚至可以不要枚举名:

#include <stdio.h>

int main(void)
{
  enum {AAA,BBB,CCC} e=BBB;

  printf("%d\n", e);

  e++;
  printf("%d\n", e);

  getchar();
  return 0;
}

4. 可随意指定序号:

#include <stdio.h>

int main(void)
{
  enum ABC{AAA=2,BBB,CCC=9} e1, e2, e3;

  e1 = AAA;
  e2 = BBB;
  e3 = CCC;

  printf("%d, %d, %d\n", e1, e2, e3);
  getchar();
  return 0;
}

5. 序号重了都不要紧:

#include <stdio.h>

int main(void)
{
  enum ABC{AAA=2,BBB=2,CCC} e1, e2, e3;

  e1 = AAA;
  e2 = BBB;
  e3 = CCC;

  printf("%d, %d, %d\n", e1, e2, e3);
  getchar();
  return 0;
}

返回“学点C语言 - 目录”

时间: 2024-08-14 04:35:23

学点C语言(18):数据类型的相关文章

学点C语言(29):数据类型

自定义的类型名一般要大写, 以提示这是自命名的类型. 1. 把 unsigned long 更名为 UINT: #include <stdio.h> int main(void) { typedef unsigned long UINT; UINT num = 1234567890; printf("%lu\n", num); getchar(); return 0; } 2. 给一个结构重命名: #include <stdio.h> int main(void

学点C语言(16):数据类型

曾经对float num=3.14f; 这样的赋值非常疑惑,其实现在也不明白. 既然说明了是float类型,又何必在3.14后面挂个f呢? 书上说: int num=100; 一个整数常量将默认为int类型(除非常数有后缀或超出了int的范围) double num=3.14; 一个浮点数常量将默认为double类型 并要求: long num=100L; long long num=100LL; unsigned long=100UL; unsigned long long num=100UL

学点C语言(14):数据类型

在C语言中, char类型永远都是一个字节, 双字节字符类型是wchar_t; 但它不是内置类型, 定义在 stddef.h. 给 wchar_t 类型的字符或字符数组(也就是字符串)赋值要冠以 L; 格式化输出(如 printf) wchar_t 类型的字符串, 要用 %S(而非 %s) 标识. #include <stdio.h> #include <stddef.h> int main(void) { wchar_t wc=L'A'; wchar_t ws[]=L"

学点C语言(12):数据类型

C语言数据类型: 基本类型.构造类型.指针类型.空类型. 基本类型又包括: 整型.字符.浮点(单精度.双精度).枚举. 构造类型又包括: 数组.结构体.公用体. 1. 显示整型(int)的最小.最大值: #include <stdio.h> #include <limits.h> int main(void) { int n1,n2; n1 = INT_MIN; n2 = INT_MAX; printf("%d .. %d", n1,n2); getchar()

学点C语言(28):数据类型

在结构中, 每个字段的数据类型是唯一的; 使用联合可以在一个字段中储存不同的数据类型. 不同的数据类型共享一块内存. 当然其内存大小应依着大的来. 联合中的数据, 非此即彼, 只有一个有效; 应该有说明在某个数据中此时有用的是什么类型. 除了共享内存以外, 联合与结构一样. 1. union 的大小是其中最大数据成员的大小: #include <stdio.h> int main(void) { union MyUnion { short n1; int n2; double n3; }; p

学点C语言(27):数据类型

所有基础的数据类型, 最大的也不过 10 个字节; 我们可以自定义的数据类型 -- "结构", 通过把若干类型组合在一起, 让一种类型可以大很多. 我们知道, 一个字节有八个 Bit 组成; 能否把一种类型缩小.缩小到 Bit 级? 结构中的 "位字段" 是以 Bit 为单位的, 这已经是计算机的最小单位, 大小是 char 类型的 1/8. 下面的例子中定义的位字段, 分别有 1-4 Bit 大小; 1 Bit 的字段只能放两个数(0.1), 4 Bit 的字段也

学点C语言(23):数据类型

C语言的内存分配很简单: malloc.calloc.realloc.free malloc(字节数); 返回内存段的首地址, void 的. calloc(个数, 类型大小); 和 malloc 的区别就是它会初始化内存为空. realloc(原指针, 字节数); 重新分配由 malloc.calloc 分配的内存; 这里有太多注意事项: 1.如果缩小了, 会截掉一块, 会保留前面的内容; 2.如果扩大了, 仍会保留已有的内容, 但新加的内存不会初始化; 3.在扩大时, 有可能内存地址会变化,

学点C语言(21):数据类型

1. 获取数组的地址无须 &,因为数组名本身就是个地址 #include <stdio.h> int main(void) { char c = 'A'; char cs[] = "ABC"; printf("%c,%s\n",c,cs); /* 获取字符及字符数组的内容 */ printf("%p,%p,%p\n",&c,cs,&cs); /* 获取字符及字符数组的地址,cs与&cs没有区别*/ ge

学点C语言(26):数据类型

1. 包含数组的结构: #include <stdio.h> int main(void) { struct Rec { int x[3]; int y; } r1; r1.x[0] = 11; r1.x[1] = 22; r1.x[2] = 33; r1.y = 99; printf("%d,%d,%d,%d",r1.x[0],r1.x[1],r1.x[2],r1.y); getchar(); return 0; } 2. 结构中的结构: #include <std