当前位置: 首页 > news >正文

大学生个人网站怎么做阿里云域名注册网站

大学生个人网站怎么做,阿里云域名注册网站,上海网站制作设计公司,企业展厅方案设计公司本章讲解C内置的数据类型(如:字符、整型、浮点数等)和自定义数据类型的机制。下一章讲解C标准库里面定义的更加复杂的数据类型,比如可变长字符串和向量等。 1.基本内置类型 C内置的基本类型包括:算术类型和空类型。算…

        本章讲解C++内置的数据类型(如:字符、整型、浮点数等)和自定义数据类型的机制。下一章讲解C++标准库里面定义的更加复杂的数据类型,比如可变长字符串和向量等。

1.基本内置类型

        C++内置的基本类型包括:算术类型和空类型。算术类型值:字符、整型数、布尔值和浮点数;空类型对对应具体的值,仅用void表示用在一些特俗场合,比如函数不返回任何值时,就使用void作为返回类型。

1.1算术类型

        算术类型分类整型和浮点型。

        各算术类型在不同机器上表示的数字范围不一样,C++规定了最小取值范围,但最大没有规定。下面图表示各算术的类型的最小取值范围:

C++:算术类型
类型含义最小尺寸
bool布尔类型未定义
char字符8位
wchar_t宽字符16位
char16_tUnicode字符16位
char32_tUnicode字符32位
short短整型16位
int整型16位
long长整型32位
long long长整型64位
float单精度浮点数6位有效数字
double双精度浮点数10位有效数字
long double扩展精度浮点数10位有效数字

        其中:char的大小为一个字节,用于存放英语体系里面的任意字符;布尔类型的取值是真(true)或假(false);

内置类型的机器实现:

        计算机按照二进制序列连续存储数据,每个bit非0即1,例如:

        00001011110110101101011100001111......

        只有将连续的一段bit规定为一个单位,二进制数据才有意义。C++规定,一个字节至少要能容纳机器中基本字符的所有字符。所以,一个字节有8位bit组成,一个字由32或64位bit组成。

        由此,计算机中每8个bit使用1个地址,如下所示:

地址数据
736424 1      0     1     0     0     1     1     0
7364251     0     0     1     0     0     0    1
7364261     1     1     0    1     1     1     0
7364270      1     1     0     0     0     0    1

        数据类型决定了某个具体数据所占的比特数以及这些比特位上数字的含义。

        浮点型在C++中,被指定了最小有效位数,但是大多数编译器都实现了更高的精度。

1.2带符号类型和无符号类型

        除布尔型和扩展的字符型以外,其他整型可以划分为带符号(signed)和无符号(unsigned)的两种类型。带符号类型可以表示正数、负数或0;无符号类型仅能表示正数或0,写法如下:

        unsigned int、unsigned long、unsigned char。

        如果int、short、long和long long没有表示是否带符号,则默认是带有符号的,可以表示负数。

        注意:浮点型是不能用unsigned和signed修饰的。

        C++在类型的规定上有如此多的类型和规定,就是为了尽可能接近硬件,满足各种硬件的特性,所以显得有些繁杂。

注意:

        切勿混用带符号类型和无符号类型,否则发生错误,运算结果无意义。

1.3类型转换

        数据类型的的定义,决定了能包含的数据范围和运算。但是当代码中值与数据类型不匹配时,C++会进行自动数据类型转换。        

bool b = 42                // b为真
int i = b;                 // i的值为1
i = 3.14;                  // i的值为3
double pi = i;             // pi的值为3.0

        把非布尔值赋值给布尔类型,0表示false,非0表示true;

        把布尔值赋值给非布尔类型,false表示0,true表示1;

        浮点数赋值给整型,仅保留整数部分;

        整数赋值给浮点数,小数部分为0。如果整数过大,超过浮点类型容量,真数据失真;

1.4字面值常量

        每种数据类型的值,可以在程序中直接写出,被称作字面常量,比如:42。

        每个字面常量都对应一种数据类型,其形式和值决定了它的数据类型。

  • 整型和浮点型字面值

        数字可以是十进制、八进制、十六进制,为了区分这几种字面常量的不同,八进制和十六进制需要加前缀符号0和0X、0x,如下:

        20 十进制                       024 八进制                  0x24十六进制                       0X24十六进制

        数字的字面常量,C++会以数字的大小,找到最小限度能装下该字面常量的数据类型与之匹配。整型经常是int型,但int装不下时,可能是long型;浮点型经常默认是double型。

  • 字符和字符串字面值

        字符字面值由单引号括起来,且只能写一个字符,比如'C';

        字符串字面值由双引号括起来,里面可以写很多字符,本质上是由每一个字符所组成的数组,并以空字符('\0')表示结尾。所以,即使字符串里面只有一个字符,比如“C”,依然长度是两个字符,字符'C'和空字符。

        两个字符串字面值写在一起,哪怕中间有空白字符(空格符、缩进符、换行符),也被C++认为是一个字符串,所以当书写较长的字符串时,一行不合适,可以分为两个字符串放在两行。

  • 转义序列

        在字符串中,有两类字符不能直接使用,必须使用转义字符进行转义后才能使用。这两类字符是:

        1.不可打印的字符,如退格、换行、空格或其它控制字符,因为没有可视化的符号;

        2.在C++中有特殊含义的字符,如单引号、双引号、反斜杠、问号。

        C++中转义字符如下:

换行符                        \n问号                        \?
纵向制表符                \v进纸符                        \f
反斜杠                        \\报警符                        \a
回车                        \r双引号                        \"
横向制表符                \t单引号                        \'
退格符                        \b

        还有一种泛化的转义字符:格式1为:"\1到3个8进制数字";格式2为:“\x1到多个十六进制数字”,比如:

        \7 响铃        \12 换行符        \40 空格        \0 空字符        \115 字符M        \x4d 字符M

  • 指定字面值的类型

        通过给字面值加上指定前缀和后缀,可以强制规定字面值的数据类型;

字符和字符串字面值的前缀
前缀含义类型
uUnicode 16位字符chart16_t
UUnicode 32位字符chart32_t
L宽字符wchar_t
u8UTF-8(仅用于字符串字面常量)char
整型字面值的后缀
后缀最小匹配类型
u 或者 Uunsigned
l 或者 Llong
ll 或者 LLlong long
浮点型字面值的后缀
后缀类型
f 或者 Ffloat
l 或者 Llong double
  • 布尔字面值和指针字面值

        布尔类型的字面值是:true和false;

        指针字面值是:nullptr。

2.变量

        变量是一个有名称的、可供程序操作的存储空间。C++中的每个变量都有其数据类型,数据类型决定了变量所占内存空间的大小和布局方式、能存储的值的范围,以及变量能够参与的运算规则。

2.1变量的定义

        变量定义的基本格式是:

数据类型说明符 变量名1, 变量名2, 变量名3 ...... ;

int a = 0, b, c=0; // a 和 c初始化了,b仅仅只是定义了
  • 初始值

        当变量获取第一个值的时候,称为初始化。初始化的值可以是任意形式:字面值常量、表达式结果、函数返回值等。

        一条语句中初始化多个变量,前面的变量可以马上为后面的变量初始化。

double a = 0.1, b = a; // a 和 b的值都是0.1

注意:

初始化不是赋值,初始化的含义是创建变量时规定一个最初的值,而赋值是把变量当前的值擦除,用一个新的值代替。二者在内存中的操作动作不一样。

  • 列表初始化

        在C++ 11中引入,用花括号或括号初始化变量,如下都是正确的:

// 以下变量值都是0
int a = 0;
int b = {0};
int c{0};
int d(0);

其中,花括号的形式逐渐流行,无论初始化还是赋值,都可以使用花括号。

  • 默认初始化

        如果定义变量时没有初始化,则变量被默认初始化,给赋予默认值。如果在函数体的变量没有初始化,则默认为0;如果在函数体内,如果变量没有初始化且没有赋值,则该变量值不可控,所以函数体内的变量一定要初始化或赋值。

2.2变量声明和定义的关系

        C++可以把代码写在多个文件上,执行之前进行分别编译。如果要使用一个不在本文件中定义的变量,使用前需要声明,声明格式如下:

// 对外部变量的声明
extern 变量数据类型 变量名

        变量只能被定义一次,但可以被声明多次,因为可以在不同文件中被使用。

变量声明、定义、初始化的区别:

  • 声明:不分配存储空间,仅仅告诉该文件,这个变量使用了外部文件的变量;
  • 定义:定义变量则分配了存储空间,但不一定有初值,即存储空间里不一定有具体的数据,但大多数情况,系统会进行默认值初始化。
  • 初始化:不仅仅分配了存储空间,还给了一个具体的值。        

        

// 声明要使用外部文件中的一个变量i;
extern int i; // 声明且定义了一个整型变量,并且,如果在函数体外则被默认初始化为0;
int j; // 声明和定义一个变量c,并显式初始化了一个值'A';
char c = 'A'; // 如果extern被显式初始化了一个值,则失去声明外部变量的作用,变得无意义
extern double s = 3.45533;

2.3 标识符

        C++标识符的定义规则:由数字、字母或下划线组成,其中必须以字母或下划线开头。

        标识符没有规定长度,但要区分大小写。

        C++系统保留了一些标识符,我们在代码中不能使用这些标识符:

C++关键字
alignascontinuefriendregistertrue
alignofdecltypegotoreinterpret_casttry
asmdefaultifreturntypedef
booldeleteinlineshorttypeid
breakdointsignedunion
casedoublelongsizeofunsigned
catchdynamic_castmutablestaticusing
charelsenamespacestatic_assertvirtrual
char16_tenumnewstatic_castvoid
char32_texplicitnoexceptstructvolatile
classexportnullptrswitchwchar_t
constexternoperatortemplatewhile
constexprfalseprivatethisand
const_castfloatprotectedthread_localand_eq
autoforpublicthrowbitand
bitorcomplnotnot_eqor
or_eqxor_eqxor

2.4 名字的作用域

        在C++中所有标识符定义后,它都有自己的作用范围,如果出了它能表示的作用范围,该标识符是另外一个含义,这个范围就是作用域

        C++中大多数的作用域都使用了花括号分隔。

  • 全局作用域:主函数名main定义于所有花括号之外,和其它大多数在函数体外的标识符一样,在整个程序范围内都可以使用。比如:全局作用域的变量叫全局变量,反之都叫局部变量。
  • 块作用域:花括号内定义的标识符,只能在花括号内使用,在花括号外无效。
  • 作用域的嵌套:作用域可以包含另一个作用域;外层作用域声明的变量可以在内层中使用,但,内层作用域可以重新定义这个变量,仅仅作用于内层作用域。

注意:

        如果函数要使用全局变量,则函数体内最好不要再定义一个同名的局部变量,以防混淆。

3.复合类型

4.const限定符

5.处理类型

6.自定义数据结构

http://www.hkea.cn/news/581413/

相关文章:

  • 跨境电商开发seo的优化策略有哪些
  • 做网站的费用 优帮云百度广告代运营
  • wordpress儿童卡通主题兰州网站seo服务
  • 8网站建设做网站sem优化师是什么意思
  • 设计师个人网站怎么做百度优化培训
  • 广东海外建设监理有限公司官方网站2345网址导航是病毒吗
  • 深圳网站制作培训宁波网络营销公司
  • 网站建设方案书 模板长清区seo网络优化软件
  • 简述网站的推广策略产品设计
  • 商贸有限公司网站建设此网站服务器不在国内维护
  • 常州个人做网站制作小程序的软件
  • 郑州做网站公司dz论坛如何seo
  • 十堰商城网站建设网络营销seo优化
  • 小欢喜林磊儿什么网站做家教福州seo推广外包
  • 许昌网站开发博客营销
  • 做网站用jquery爱站网关键词挖掘
  • wordpress手动裁剪seo营销推广服务公司
  • 英文网站建设网站海南网站制作公司
  • 网页设计与网站建设主要内容软文营销的特点
  • 一起做网站17广州最新小组排名
  • 最专业的网站设计公司有哪些论坛企业推广
  • 单页网站怎么做外链个人网页
  • 宁波城乡住房建设局网站有效的网络推广
  • 网站建设 深圳销售crm客户管理系统
  • 高端网站开发设计站长之家字体
  • 免费网站建站工具购买域名的网站
  • 淘宝联盟怎么做网站百度网站提交
  • 前端做用vue做后台多还是做网站多青岛网站快速排名优化
  • 岳阳网站开发公司海淀区seo多少钱
  • 2017年做网站维护总结百度搜索软件