日期: 2022-09-21 02:09:26 浏览数:3

上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
石家庄外贸网站建设-双语网站制作-企业中英文网站优化推广-多语言集团网站定制开发

石家庄外贸网站建设-双语网站制作-企业中英文网站优化推广-多语言集团网站定制开发
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
size_t 在 C 语言中就有了。
它是一种 整型 类型,里面保存的是一个整数,就像 int, long 那样。这种整数用来记录一个大小(size)。size_t 的全称应该是 size type,就是说 一种用来记录大小的数据类型。
通常我们用 sizeof(XXX) 操作,这个操作所得到的结果就是 size_t 类型。
因为 size_t 类型的数据其实是保存了一个整数,所以它也可以做加减乘除,也可以转化为 int 并赋值给 int 类型的变量。
类似的还有 wchar_t, ptrdiff_t。
wchar_t 就是 wide char type, 一种用来记录一个宽字符的数据类型 。
ptrdiff_t 就是 pointer difference type, 一种用来记录两个指针之间的距离的数据类型 。
通常,size_t 和 ptrdiff_t 都是用 typedef 来实现的。你可能在某个头文件里面找到类似的语句:
而 wchar_t 则稍有不同。在一些旧的编译器中,wchar_t 也可能是用 typedef 来实现,但是新的标准中 wchar_t 已经是 C/C++ 语言的关键字,wchar_t 类型的地位已经和 char, int 的地位等同了。
在标准 C/C++ 的语法中,只有 int float char bool 等基本的数据类型,至于 size_t, 或 size_type 都是以后的编程人员为了方便记忆所定义的一些便于理解的由基本数据类型的变体类型。例如:typedef int size_t; 定义了 size_t 为整型。
int i; // 定义一个 int 类型的变量 isize_t size=sizeof(i); // 用 sizeof 操作得到变量i的类型的大小// 这是一个size_t类型的值// 可以用来对一个size_t类型的变量做初始化i=(int)size; // size_t 类型的值可以转化为 int 类型的值char c='a'; // c 保存了字符 a,占一个字节wchar_t wc=L'a'; // wc 保存了宽字符 a,占两个字节// 注意 'a' 表示字符 a,L'a' 表示宽字符 aint arr[]={1,2,3,4,5}; // 定义一个数组int *p1=&arr[0]; // 取得数组中元素的地址,赋值给指针int *p2=&arr[3];ptrdiff_t diff=p2-p1; // 指针的减法可以计算两个指针之间相隔的元素个数// 所得结果是一个 ptrdiff_t 类型i=(int)diff; // ptrdiff_t 类型的值可以转化为 int 类型的值突然的幸福
292***0456@qq.com
参考地址
RealRookie
105***0686@qq.com
1. 每个枚举元素在声明时被分配一个整型值,默认从 0 开始,逐个加 1。
#include <iostream>using namespace std;int main(){ enum Weekend{Zero,One,Two,Three,Four}; int a,b,c,d,e; a=Zero; b=One; c=Two; d=Three; e=Four; cout<<a<<","<<b<<","<<c<<","<<d<<","<<e<<endl; return 0;}2. 也可以在定义枚举类型时对枚举元素赋值,此时,赋值的枚举值为所赋的值,而其他没有赋值的枚举值在为前一个枚举值加 1。
#include <iostream>using namespace std;int main(){ enum Weekend{Zero,One,Two=555,Three,Four}; int a,b,c,d,e; a=Zero; b=One; c=Two; d=Three; e=Four; cout<<a<<","<<b<<","<<c<<","<<d<<","<<e<<endl; return 0;}RealRookie
105***0686@qq.com
Alvin
xix***aha.2008@163.com
typedef 与 #define 的区别
1. 执行时间不同
关键字 typedef 在编译阶段有效,由于是在编译阶段,因此 typedef 有类型检查的功能。
#define 则是宏定义,发生在预处理阶段,也就是编译之前,它只进行简单而机械的字符串替换,而不进行任何检查。
【例1.1】typedef 会做相应的类型检查:
typedef unsigned int UINT; void func(){ UINT value = "abc"; // error C2440: 'initializing' : cannot convert from 'const char [4]' to 'UINT' cout << value << endl;}【例1.2】#define不做类型检查:
// #define用法例子:#define f(x) x*xint main(){ int a=6, b=2, c; c=f(a) / f(b); printf("%d ", c); return 0;}程序的输出结果是: 36,根本原因就在于 #define 只是简单的字符串替换。
2、功能有差异
typedef 用来定义类型的别名,定义与平台无关的数据类型,与 struct 的结合使用等。
#define 不只是可以为类型取别名,还可以定义常量、变量、编译开关等。
3、作用域不同
#define 没有作用域的限制,只要是之前预定义过的宏,在以后的程序中都可以使用。
而 typedef 有自己的作用域。
【例3.1】没有作用域的限制,只要是之前预定义过就可以
void func1(){ #define HW "HelloWorld";} void func2(){ string str = HW; cout << str << endl;}【例3.2】而typedef有自己的作用域
void func1(){ typedef unsigned int UINT;} void func2(){ UINT uValue = 5;//error C2065: 'UINT' : undeclared identifier}【例3.3】
class A{ typedef unsigned int UINT; UINT valueA; A() : valueA(0){}}; class B{ UINT valueB; //error C2146: syntax error : missing ';' before identifier 'valueB' //error C4430: missing type specifier - int assumed. Note: C++ does not support default-int};上面例子在B类中使用UINT会出错,因为UINT只在类A的作用域中。此外,在类中用typedef定义的类型别名还具有相应的访问权限,【例3.4】: