您身边的网站建设专家
成功案例

【建站服务】长沙网页设计-高端网站设计公司-域名申请

日期: 2022-09-21 02:16:15 浏览数:5


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


长沙网页设计-高端网站设计公司

网站建设.png

ptrdiff_t 就是 pointer difference type, 一种用来记录两个指针之间的距离的数据类型 。


通常,size_t 和 ptrdiff_t 都是用 typedef 来实现的。你可能在某个头文件里面找到类似的语句:


typedef unsigned int size_t;

而 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 类型的变量 i

size_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' 表示宽字符 a


int 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


   参考地址


4年前 (2018-03-28)

   RealRookie


  105***0686@qq.com


37

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

   RealRookie


  105***0686@qq.com


4年前 (2018-06-18)

   Alvin


  xix***aha.2008@163.com


180

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*x

int 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】:


class A





长沙网页设计-高端网站设计公司


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


全国咨询热线:400-111-6878

地址:全国各地都有驻点商务

Copyright © 2021 通陆科技

网站建设上往建站