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

企业自己如何做网站推广蛋糕网站网页设计

企业自己如何做网站推广,蛋糕网站网页设计,交通建设门户网站,建筑木工招聘平台目录 一、基本内置类型1. 类型的作用2. 分类3. 整型3.1 内存描述及查询3.2 布尔类型 —— bool3.3 字符类型 —— char3.4 其他整型 4. 有符号类型和无符号类型5. 浮点型6. 如何选择类型7. 类型转换7.1 自动类型转换7.2 强制类型转换7.3 类型转换总结 8. 类型溢出8.1 注意事项 … 目录 一、基本内置类型1. 类型的作用2. 分类3. 整型3.1 内存描述及查询3.2 布尔类型 —— bool3.3 字符类型 —— char3.4 其他整型 4. 有符号类型和无符号类型5. 浮点型6. 如何选择类型7. 类型转换7.1 自动类型转换7.2 强制类型转换7.3 类型转换总结 8. 类型溢出8.1 注意事项 9. 字面值常量9.1 整形字面值9.2 浮点型字面值9.3 字符和字符串字面值9.3.1 转义字符 二、变量1. 变量的定义和初始化2. 变量若未初始化的结果3. 变量声明和定义的区别4. 变量名的命名规则5. 变量名的作用域 一、基本内置类型 1. 类型的作用 数据类型是程序的基础它决定了该数据的意义和能对其进行的操作。如 a a b; 若 a 和 b 均为 int 类型则执行的是 int 类型的加法若为 double 类型则执行的是 double 类型的加法若为自定义类型则执行自定义类型的加法。 2. 分类 C中基本数据类型分为算数类型和空类型void。算数类型包含布尔类型、字符类型、整型和浮点型由于布尔和字符类型也算整型所以算数类型实际上就是整型和浮点型。空类型不对应具体类型只在一些特殊场合使用最常见的是当函数不返回任何值时使用空类型void作为返回类型。 3. 整型 一般来说按照所占位数的大小可以按如下顺序划分整形bool布尔、char字符、short短整型、int整型、long长整型和 long long。 3.1 内存描述及查询 在计算机中数据都是用一个个比特位来表示的该值只有 0 和 1 两种。而一般把 8 个比特位称为一个字节byte即 1 字节 8 比特。一个字节可以表示 2 的8次方种变化如果是无符号整数即 0-255 。而算数类型的尺寸也就是该类型所占比特位数在不同实现上面是有所差别的。我们可以通过对类型使用 sizeof 运算符来查看该类型所占内存大小单位字节。如 可以看到 int 类型占 4 个字节也就是 32 位。 也可以通过包含头文件 climits 通过符号常量来查询具体的值。如 3.2 布尔类型 —— bool 布尔类型的值只有两种真true和假false。true 和 false 为 bool 类型的字面值常量分别表示真和假。布尔型一般用在条件判断语句中判断该条件是否成立。虽然只用一个比特为就可以表示该类型但是一般都以一个字节进行存储。如果使用 bool 类型进行算数运算则真true为 1假false为 0。而如果在需要使用 bool 型的地方使用整型或者浮点型则 0 为假非 0 为真。 3.3 字符类型 —— char C提供了多种字符类型其中多数支持国际化。基本字符类型是 char一个 char 应确保可以存放机器基本字符集中的任意字符对应的数字值。char 的大小和一个机器字节一样一般为 8 位。而在计算机中实际上是使用整数来存储 char 类型如 ASCII码表通过给每个字符对应一个数字当需要使用字符时就通过存储的数值找到对应的字符。如在ASCII码中字符’A’对应整数 65字符’a’对应整数 97。 3.4 其他整型 除了字符和布尔类型其他整型用于表示不同范围的整数。C规定 int 至少和 short 一样大long 至少和 int 一样大long long 至少和 long 一样大。其中long long 类型是 C11 中新定义的。 4. 有符号类型和无符号类型 除去 bool 型之外其他类型可以分为有符号和无符号类型两种。有符号类型signed就是既可以表示正数又可以表示负数而无符号类型unsigned就是只能表示 0 和正数。一般情况下 short、int、long 和 long long都是有符号类型。无符号类型只需要在其前面加上 unsigned 修饰即可如 unsigned int 。 与其他整型不同char 被分为了三种char、signed char 和 unsigned char。但是实际上只有两种char 类型会被编译器转换为有符号或者无符号的一种具体是哪一种由具体实现决定。 C并没有规定带符号类型应如何表示但是约定了表示范围内的正值和负值应平衡。所以有符号类型的最高位表示正负最高位为 1 为负最高位为 0 为正。如int a 15 5. 浮点型 浮点型按照所占位数由低到高为float、double 和 long double。浮点型与整型的差别在于浮点型可以表示整数。但是浮点型有精度范围超出该范围其值不精准。所以上述三种类型的差别在于所表示的值的范围不同和精度不同。浮点型全是有符号类型。 6. 如何选择类型 a. 当确定数值不可能为负数时选择无符号类型。 b. 一般选择 int 进行算数运算。short 一般显得太小而 long 一般和 int 一样大。如果数值超出 int 一般选择 long long 类型。 c. 在算数表达式中尽量不要使用 char 或 bool只在使用字符或者布尔值时使用它们。因为 char 类型在一些实现上面是有符号的在另一些实现上面是无符号的。如果真的需要使用请指明其类型是 signed char 或者 unsigned char 。 d. 执行浮点数运算选用 double因为 float 通常精度不够而两者计算代价相差无几。long double 提供的精度在一般情况下是没有必要的而且其运行时消耗更大。 7. 类型转换 类型转换分为自动类型转换和强制类型转换。 7.1 自动类型转换 bool 值进行算数运算时会自动类型转换为 int 类型真true为 1 假false为 0 。而其他类型赋值给 bool 变量0 为假false非 0 为真true。如下代码 char 类型进行算数运算时也会自动类型转换为 int 类型。而其他整型赋值给 char 类型时只会存储该类型的后 8 位。如下代码 再次证明 char 类型是用整数进行存储的当需要字符时编译器就找到整数 67 对应的字符 ‘C’然后输出。而当需要整数时编译器找到字符 ‘A’ 对应的整数 65 存入变量 b 中然后输出。 浮点数赋值给整型变量时会发生截断丢弃小数部分。而整数赋值给浮点型变量时小数部分为0。如下代码 这里时编译器做了处理实际上 b 3.0 。 7.2 强制类型转换 强制类型转换有两种方式一种时从 C 语言继承下来的 C 风格另一种是 C 新增的 C风格。 如下代码 本来三行代码都应该和第一行一样输出数字 65。但是第二行和第三行进行了强制类型转换使原本 int 类型的 65变成了 char 类型的 65 。编译器就会按照 char 类型进行输出找到整数 65 对应的字符 ‘A’输出。 C 风格强制类型转换格式(类型)变量名 C 风格强制类型转换格式类型(变量名) C 风格的想法是想像使用函数一样使用使用强制类型转换。这两种就目前来说已经够用但是一般在编写程序的过程中很少用到强制类型转换。 7.3 类型转换总结 初始化和赋值 将值赋给取值范围更大的类型时通常不会导致问题将值赋给取值范围更小的类型时可能会导致精度降低或数据丢失将0赋给bool变量时将被转换为false非零值转换为true。 表达式中的转换 整型提升 bool、char、unsigned char、signed char 和 short 值在表达式中会被转换为int。 自动类型转换 当运算涉及两种类型时较小的类型将被转换为较大的类型。编译器通过校验表来确定在表达式中执行的转换。 强制类型转换 可以使用强制类型转换运算符显式地进行类型转换。 8. 类型溢出 如果赋值超出了该类型的最大值或者低于该类型的最小值就会从另一头开始如unsigned char 类型的最大值是 255最小值是 0分别使用256 和 -1 给其赋值。代码和结果如下 可以看出如果超出最大值则从最小值开始如果超出最小值就从最大值开始。但是C只保证了无符号类型的溢出是这样处理的而有符号类型则不一定其造成的结果是未定义的此时程序可能继续工作、可能崩溃也可能产生垃圾数据。 这是我用的计算无符号类型溢出的方法 如果超过最大值就用该值先减去 1然后一直减该无符号类型的最大值直到结果在该无符号类型范围之内。如果低于最小值则先加 1然后一直加该无符号类型的最大值直到结果在该无符号类型的范围之内。这个 1 是必须加减的最大值至少加减 1 次。如 256 - 1 - 255 0 -1 1 255 255 8.1 注意事项 不要使用无符号类型进行涉及负数的算数运算。因为同类型的有符号类型遇到同类型的无符号类型在计算过程中会转换为无符号类型。结果也是无符号类型但是无符号类型不存在负数就会像上面溢出这样处理。如下代码和结果 此处的计算结果本来应该是 -10但是 int 类型的变量 a 在和 unsigned 类型的变量 b 进行运算时转换为了 unsigned 类型-10 便成为了上述的溢出行为。 不要在循环变量中使用无符号类型的循环变量如下代码 可以发现已经进入死循环了因为当 i 0 时执行 --i 操作使 i 成为了 unsigned 类型的最大值。造成了无符号类型的溢出行为。 9. 字面值常量 在C中字面值存储在内存中的常量区。常量区是程序运行时的一个固定区域用于存储不可修改的常量数据。 9.1 整形字面值 如12499等都是整形字面值。整形字面值还可以使用八进制和十六进制八进制以 0 开头而十六进制以 0x 或者 0X 开头。如下表示的都是整数 20 20 —— 十进制 024 —— 八进制 0x14 —— 十六进制 在能容纳字面值数值的前提下十进制字面值会从以下类型中选择尺寸最小的那个int、long 和 long long 。而八进制和十六进制从 int 、unsigned int、long 、unsigned long、long long 和 unsigned long long 中选择尺寸最小的那个。 可以通过添加后缀来使字面值成为我们想要的类型如 32U / 32u —— unsigned int 类型的字面值 32 32l / 32L —— long 类型的字面值 32 32ul / 32LU —— unsigned long 类型的字面值 32 大小写可以互换u 和 l 前后顺序可以颠倒。一般使用大写 L 小写 l 容易 和数字 1 混淆。 9.2 浮点型字面值 浮点型字面值有两种表示方法小数表示法和科学计数法。如3.141.993.4E2 等均为浮点型字面值。而科学计数法中 E2 代表前面的数值乘以 10 的 2 次方即 3.4 * 100 340.0 。而 -1.2E-1 中最前面的符号表示整个浮点数是一个负数而 E 后面的符号表示乘以 10 的 -1 次方。即 -1.2 * 0.1 -0.12 。 9.3 字符和字符串字面值 用双引号括起来的是字符串字面值而用单引号括起来的是字符字面值。如‘a’‘G’‘1’ 等均为字符字面值。而 “abc”“hello”“123” 等均为字符串字面值。 字符串字面值实际上是由一组字符常量组成的数组array。编译器通过在其末尾添加空字符‘\0’来标识所以实际上字符串字面值的实际长度比它的内容多 1 。所需要的存储空间也多了一个字节。如字符’A’表示的就是单独的字符 A而字符串A表示一个字符数组除了字符’A’外还有一个空字符‘\0’。 一般来说如果两个字符串之间没有其他输出那么第二个字符串会紧接在第一个字符串末尾。如下代码 若两个字符串紧邻且中间只有空格、换行符和制表符那么这实际上是一个字符串。如果字符串太长一行不好写就可以分行编写如下 也可以通过添加前缀和后缀来指定字符字面值和字符串字面值的类型但是我从来没用过。有兴趣的可以去了解一下。 9.3.1 转义字符 在C中有两类字符程序员是不能直接使用的一类是不可打印字符如退格或其他控制字符因为它们看不见另一类是在C中有特殊含义的字符单引号、双引号、反斜线。所以需要使用转义字符来使用它们转义字符均以反斜线开头\。如下是一些重要且经常使用的转义字符 换行符 —— \n 横向制表符 —— \t 退格符 —— \b 双引号 —— 单引号 —— ’ 反斜线 —— \ 空字符 —— \0 如cout “\n”; 表示换行光标移动到下一行开头。其作用和 iostream 库中的操纵符 endl 一致cout endl; 。当输出字符串时需要换行使用前者比较方便当输出数值等需要换行使用后者比较方便。 也可以使用八进制或者十六进制输出字符。八进制反斜杠后面紧跟 1-3 个八进制数而十六进制反斜杠后面跟 1-多个十六进制数。 转以字符的使用的普通字符一样并没有什么特别的地方如 cout “Hello \x4do\115!\n”; 输出 Hi MOM! 然后换行。 注意 如果反斜杠后面跟着的八进制数超过 3 个则只取前三个。如“\1234” 表示三个字符即八进制 123 对应的字符和字符 ‘4’还有空字符。而十六进制 \x 后面跟着的所有数字都算如“\x1234” 表示两个字符即十六进制 1234 对应的字符和空字符。但是一般 char 只有 8 个字节所以使用的时候需要小心。 9.4 布尔字面值和指针字面值 布尔字面值只有两个true 和 false 分别表示真和假。 指针字面值只有一个nullptr表示空指针。 二、变量 变量的实质是一块被标识符标记的内存空间。其类型决定了这块内存空间的大小和编译器如何理解这块空间。对C程序员来说变量和对象一般没有区别可以互换使用对象一般用来称呼类类型的变量。 1. 变量的定义和初始化 变量的定义形式首先是类型说明符其后紧跟由一个或多个变量名组成的列表其中变量名以逗号分隔最后以分号结束。列表中每个变量名的类型由类型说明符指定定义时还可以为一个或多个变量赋初值也叫初始化。如 int a, b, c; —— 定义了三个 int 变量 double a, b, c 0; —— 定义了三个 double 变量并给最后一个变量 c 初始化。 上面 int 和 double 就是类型说明符而 ab 和 c 是变量名。 在创建对象的同时并给它赋一个初值就叫这个对象被初始化了。用于初始化的值可以是任意复杂的表达式。当一次性定义多个变量时先定义并初始化的变量可以用来初始化后定义的对象。如int a 1, b a*2; 注意 初始化不是赋值。初始化是在创建对象的同时赋予其一个初值。而赋值是用新的值替换当前值。 C定义了如下几种初始化方式 int a 0; int a { 0 }; int a {0}; int a(0); 用花括号来初始化变量是C11 新标准的一部分这种初始化的形式被称为列表初始化。无论是初始化对象还是某些时候为对象赋新值都可以使用花括号。 对于内置类型列表初始化不允许出现初始值缺失的风险。如用 double 值来初始化 int 变量会发生截断丢弃小数部分。若出现此类情况编译器会报错。如下代码和结果 2. 变量若未初始化的结果 定义在函数之内的变量叫做局部变量定义在函数之外的变量叫全局变量。若局部变量未初始化则其里面存储的是之前这块空间上存储的值也就是垃圾值。若直接使用未初始化的局部变量会产生难以想象的错误有的编译器会直接报错。而全局变量和静态变量若不初始化编译器会自动把其值设置为 0 。静态变量就是生命周期为整个程序的变量。局部变量则是程序执行到其声明语句时被创建出了其作用域时被销毁。而类类型的对象若显式初始化则其会自动调用其默认构造函数隐式初始化。 所以局部变量最好在创建的同时初始化。 3. 变量声明和定义的区别 简单点来说变量的声明不开辟空间而变量的定义开辟空间。在中后期学习C的时候基本上都是分多个文件进行编程。有时一个文件需要使用另一个文件里面的变量这个时候就只需要声明该变量而不需要定义。意思就是告诉编译器有这个变量但是这个变量的定义不在该文件需要去别的文件找。 只声明而不定义变量就是在原来定义变量的前面加上关键字 extren 但是不能进行初始化。如果进行初始化就抵消了 extren 关键字的作用还是定义变量。我们最开始定义变量的形式既是声明也是定义如int a; 。 必须在使用变量之前声明变量因为可能存在拼写错误这样没有声明的变量就不能使用就可以检查出来这种低级错误。C是一种静态类型语言在编译阶段进行类型检查。其中检查类型的过程称为类型检查。如下代码展示了拼写错误 这里单词 favorite 就拼写错了一个字母然后被编译器检查出来了因为这个拼写错误的标识符未声明编译器不认识。 4. 变量名的命名规则 变量名实际上就是标识符变量名、函数名、结构名和类名等使用的都是标识符。标识符由字母、数字和下划线组成且必须以字母或者下划线开头。标识符对长度一般没有限制但是区分大小写。如下面定义了四个不同的 int 变量 int ab 1, Ab 1, aB 1, AB 1; 但是标识符不能和C关键字相同。同时C也保留了一些名称给语言本身使用。用户自定义的标识符不能连续出现两个下划线也不能以下划线紧连着大写字母开头。此外定义在函数体外的标识符不能以下划线开头。 变量名的命名规范 C没有规定变量名的命名标准但是下面是一些约定俗成的命名规范可以提高代码的可读性。 1标识符要能体现实际含义 2变量名一般用小写字母如year 3用户自定义的类名一般以大写字母开头如Person 4如果标识符由多个单词组成则单词之前应该由明显区分用下划线分开或者使用大写字母。如student_number 或者 studentNumber不要使用 studentnumber 。 5. 变量名的作用域 作用域是程序的一部分在其中名字有其特定的含义。C中在多数作用域以花括号分隔。 在函数内定义的变量其作用域一般都是从声明语句到其所在最近花括号的结尾。注意 在同一作用域内不能创建两个变量名相同的变量否则编译器会报错。如下代码 但是不同作用域可以创建同名变量。当前作用域变量会隐藏其他同名变量。 上面这种作用域中包含作用域称为嵌套作用域。外面的叫外层作用域里面的叫内层作用域允许在内层作用域中重新定义外层作用域中已有的名称当执行到内层作用域时内层作用域中的同名变量会隐藏外层作用域中的同名变量。当执行第一条输出语句时内层中的 a 还未创建所以输出外层中的 a。而执行第二条输出语句时内层的 a 隐藏了外层的 a 所以输出内层的 a 。而执行第三条语句时已经不在第二个 a 的作用域中且其已经被销毁所以输出第一个 a 。 全局变量的作用域为整个程序从声明的位置到程序结束。如果在函数中声明了与全局变量同名的变量那么函数中的局部变量会隐藏全局变量。而通过使用作用域操作符::可以显式地访问全局变量。如下代码 第一条输出语句局部变量隐藏了全局变量。而第二条语句通过作用域操作符::显式访问全局变量。
http://www.hkea.cn/news/14538380/

相关文章:

  • 如何制作网站链接近三年成功的营销案例
  • 建设网站搞网络营销的总结网站维护源码自适应
  • 物流公司怎么做网站网站建设_网站设计 app制作
  • 南海桂城城乡建设局官方网站电商网站大全
  • 触屏网站meta标签百度软文推广
  • 龙岩网站建设行情销售客户管理软件哪个好
  • 简阳网站建设外贸企业网站改版
  • 信创网站建设网店代运营是什么意思
  • 网站解析后显示建设中国家企业信息系统查询系统官方
  • 兰州建设厅评职称网站python 网站开发代码
  • 全国做网站的大公司有哪些人人做网站
  • 徐州网站快速优化排名可信网站 收费
  • 湖南养老院中企动力网站建设网站开发主要技术
  • 茂名做网站建设公司可信赖的镇江网站建设
  • 优秀网站建设模版中国空间站现在有几个人
  • 如何把网站扒下来营销型网站深度网
  • 网站开发与设计实训报告心得宁波网站推广外包服务
  • 网址收录网站wordpress 找不到文件路径
  • 衡阳市网站建设公司直播网站怎么做的
  • 网站制作怎么做让点击高wordpress网页标签图标
  • 途牛网电子商务网站建设分析有哪些网站可以做全景效果图
  • 昌都网站建设好的网站页面
  • 设计开发上海网站设计开发公司男女做暧网站
  • 威龙电子商务做的网站推广方案框架
  • 个人可以做自媒体网站吗怎么增加网站反链
  • 丰台做网站公司个人备案 做网站
  • 亿赐客网站怎么样做网站选择虚拟主机好是服务器
  • 宁波网站建设公司信息查询网站开发费用科目
  • 大连建设网官方网站sina app engine wordpress
  • wordpress英文版变成中文版廊坊视频优化展现