学点C语言(15):数据范例 – sizeof(检测范例巨细)
当前位置:以往代写 > C/C++ 教程 >学点C语言(15):数据范例 – sizeof(检测范例巨细)
2019-06-13

学点C语言(15):数据范例 – sizeof(检测范例巨细)

学点C语言(15):数据范例 – sizeof(检测范例巨细)

副标题#e#

获取范例巨细的变量最好不是 int 范例, 而是 size_t 范例;

size_t 在 stdio.h、stddef.h 都有界说.

1. 获取已知范例的巨细:

#include <stdio.h>
#include <stddef.h>

int main(void)
{
  char n = 2;
  size_t size;

  size = sizeof(char);
  printf("%*u: char\n", n,size);

  size = sizeof(unsigned char);
  printf("%*u: unsigned char\n", n,size);

  size = sizeof(short);
  printf("%*u: short\n", n,size);

  size = sizeof(unsigned short);
  printf("%*u: unsigned short\n", n,size);

  size = sizeof(int);
  printf("%*u: int\n", n,size);

  size = sizeof(unsigned);
  printf("%*u: unsigned\n", n,size);

  size = sizeof(long);
  printf("%*u: long\n", n,size);

  size = sizeof(unsigned long);
  printf("%*u: unsigned long\n", n,size);

  size = sizeof(long long);
  printf("%*u: long long\n", n,size);

  size = sizeof(unsigned long long);
  printf("%*u: unsigned long long\n", n,size);

  size = sizeof(float);
  printf("%*u: float\n", n,size);

  size = sizeof(double);
  printf("%*u: double\n", n,size);

  size = sizeof(long double);
  printf("%*u: long double\n", n,size);

  size = sizeof(wchar_t);
  printf("%*u: wchar_t\n", n,size);

  getchar();
  return 0;
}


#p#副标题#e#

2. 获取范例巨细可按照范例名, 也可按照变量名:

#include <stdio.h>

int main(void)
{
  int i;
  double d;

  printf("%u, %u\n", sizeof(i), sizeof(int));
  printf("%u, %u\n", sizeof(d), sizeof(double));

  getchar();
  return 0;
}

3. 对变量名(非范例名), sizeof 也可以不要括号:

#include <stdio.h>

int main(void)
{
  int i;
  double d;

  printf("%u\n", sizeof i);
  printf("%u\n", sizeof d);

  getchar();
  return 0;
}

4. sizeof(数组变量) 获取的是数组巨细(而非维数), 这和 Delphi 很纷歧样:

#include <stdio.h>

int main(void)
{
  int nums[10];

  printf("%u\n", sizeof nums); /* 数组巨细 */
   printf("%u\n", sizeof(nums) / sizeof(int)); /* 数组维数 */

  getchar();
  return 0;
}

返回“学点C语言 – 目次”

    关键字:

在线提交作业