C++中siseof和size_t

sizeof 以字节为单位返回运算对象的大小
运算对象可以是具体的数据对象(如 变量名)或类型
如果运算对象是类型(如 float),则必须用圆括号将其括起来
好习惯,使用 sizeof运算符的时候,始终使用小括号将运算对象括起来

点击查看代码
// 使用C99新增的%zd转换说明 --如果编译器不支持%zd,请将其改成%u或%lu
#include<stdio.h>

int main(void)
{
	int n = 0;
	size_t intsize;
	//intsize = sizeof(int);
	intsize = sizeof n;
	printf("n=%d,n has %zd bytes; all ints have %zd bytes .\n", n, sizeof n, intsize);
	return 0;
}

C有一个typedef机制,允许程序员为现有类型创建别名,例如

typedef double real;

这样,real就是double的别名。现在,可以声明一个real类型的变量:
real real;//使用typedef
类似地,C头文件系统可以使用typedef把size_t作为unsigned int或unsigned long的别名。
typedef unsigned int int size_t;

C语言标准并没有明确规定size_t的确切类型,但通常将其定义为无符号整数类型,
以确保能容纳任何对象的大小。因此,具体的视线可能会根据平台和编译器而有所不同。在使用size_t类型时,编译器会根据不同的系统替换
标准类型,增加可移植性。
C99做了进一步调整,新增了%zd转换说明用于printf()显示size_t类型的值。
如果系统不支持%zd,可使用%u或%lu代替%zd

点击查看代码
#include<stdio.h>
typedef double real;
int main(void)
{
	size_t age = 10;
	printf("age is %d", age);
	return 0;
}
posted @ 2024-07-03 16:16  阳光天气  阅读(4)  评论(0编辑  收藏  举报