C++教程 - How to C++系列专栏第6篇

关于专栏

这个专栏是优质的C++教程专栏,如果你还没看过第0篇,点击这里去第0篇

本专栏一致使用操作系统:macOS Ventura,代码编辑器:CLion,C++编译器:Clang

感谢一路相伴的朋友们,感谢你们的支持 ^ _ ^

博主反馈非常及时,如果你在阅读的时候遇到问题,可以直接在评论区提问,博主看到后会在24小时内给你反馈

C++教程 - How to C++系列专栏第N篇

目录

关于专栏

更新记录

2023年9月17日

前言

变量

概念

命名

整型

概念

整型类别

位与字节

下篇预告

结语

快捷翻页

本文参考文章,书籍


更新记录

2023年9月17日

发布第一篇文章


前言

变量是什么?该怎么称呼它?变量还有类型?啥意思?不同类型的变量不同之处在哪里?位和字节?


变量

概念

前面我们略微讲解了关于C++中变量的一些特点特性,今天,我们来再认识一下这个将成为你无比熟悉的朋友

#include <iostream>

int main(void)
{
    int hello;
    hello = 5;
    
    return 0;
}

在这段代码中,我们声明了一个整型变量,那么,变量是什么?

使用名称hello来表示该整数的值(这里为5)。实际上,程序将找到一块能够存储整数的内存,并把这个内存单元标记为hello,然后5复制到该内存单元中

之后就可在程序中使用“hello”来访问该内存单元。这些语句没有告诉我们,这个值将存储在内存的什么位置,但程序确实记录了这种信息。 实际上,可以使用&运算符来检索hello的内存地址,之后介绍另一种标识数据的方法指针(我们马上就要接触到它)时,将介绍这个运算符

简单的可以看做:在生活中,我们买了一瓶花生油,然后我们把油放入油桶,并给这个油桶打了个花生油的标签,后续呢,当我们的家人或者自己要使用的时候,我们一说花生油,就知道它是什么在哪里

花生油的这个标签呢,就可以类比变量,油就是我们存在变量里的东西,油桶就是内存

命名

可是这个标签怎么打呢?实际上,最好的打法是:是啥写啥

没错,这种方法最简单也最好理解,比如我们要表示用于存储去和结果的变量,那么就可以命名为sum,不会有人理解不了甚至来找你问这是什么,但是你要写的特别啰嗦复杂乱七八糟(我最痛恨这种人[代码洁癖犯了]),然后还写个s,这谁能懂

也不要写个a1,c1,v1,这种,可读性《爆表》

写没有争议的变量名,应该是每个程序员应有的素质,按规范写,当然有些简写是可以写的,比如数据库的"database"可以简写成"db",增加的"Addition"可以简写成"Add",这种简写是没有争议的,不像sum简写成s或者瞎按的fghjk,如果有人跟你吵简写问题,写成Add的你肯定比写s的你嗓门可以更大些,并且这种情况确实就是对方的问题了

变量的命名请务必写成英文正常写法,如果不会可以拿翻译软件翻,写拼音的不光有代码洁癖的看不下去,任何人都看不下去啊喂

总之,写成拼音或者中文就是你的问题了,但你写的是正常的英文写法那对方要来找你就是对方的问题了

大家还最好遵守以下守则

  • 在名称中只能使用字母字符、数字和下划线(_)。 名称的第一个字符不能是数字
  • 区分大写字符与小写字符
  • 不能将C++关键字用作名称。 以两个下划线或下划线和大写字母打头的名称被保留给实现(编译 器及其使用的资源)使用。以一个下划线开头的名称被保留给实现,用作全局标识符
  • C++对于名称的长度没有限制,名称中所有的字符都有意义

倒数第二点与前面几点有些不同,因为使用像_time_stop或_Donut这样的名称不会导致编译器错误,而会导致行为的不确定性。换句话说,不知道结果将是什么。不出现编译器错误的原因是,这样的名称不是非法的,但要留给实现/编译器用
全局名称指的是名称被声明的位置,后面我们会讲到

如果要用两个或者更多的单词组成一个名称,通常的做法是用下划线字符将单词分开,比如sum _the_inputs,或者从第二个单词开始将每个单词的第一个字母大写,如yourEyes(C程序员倾向于按C语言的方式使用下划线,而Pascal程序员喜欢采用大写方式)这两种形式都很容易将单词区分开,如carDrip和cardRip或boat_sport和boats_port

变量命名方案和函数命名方案一样,也有很多话题可供讨论。确实,该主题会引发一些 最尖锐的反对意见。同样,和函数名称一样,只要变量名合法,C++编译器就不会介意,但是 一致、精确的个人命名约定是很有帮助的。

与函数命名一样,大写在变量命名中也是一个关键问题,但很多程序员可能会在变量名中加入其他的信息,即描述变量类型或内容的前缀。例如,可以将整型变量"myWeight"命名"nMyWeight",其中前缀n用来表示整数值,在阅读代码或 变量定义不是十分清楚的情况下,前缀很有用。另外,这个变量也可以叫做"intMyWeight",这会更精确,而且容易理解。常以这种方式使用的其他前缀有:"str"或"sz"(表示以空字符结束的字符串)、b(表示布尔值)、p(表示指针)和c(表示单个字符)

随着对C++的逐步了解,将发现很多有关前缀命名风格的示例(包括漂亮的m_lpctstr前缀—这是一个类成员值,其中包含了指向常量的长指针和以空字符结尾的字符串),还有其他更奇异、更违反直觉的风格,采不采用这些风格,完全取决于你。在C++所有主观的风格中,一致性和精度是最重要的

整型

概念

整数就是没有小数部分的数字,如2、98、-5468和0

整数有很多,如果将无限大的整数看作很大,则不可能用有限的计算机内存来表示所有的整数。因此,语言只能表示所有整数的一个子集。有些语言只提供一种整型(一种类型满足所有要求),而C++则提供好几种,这样便能够根据程序的具体要求选择最合适的整型

不同C++整型使用不同的内存量来存储整数。使用的内存量越大,可以表示的整数值范围也越大。另外,有的类型(符号类型)可表示正值和负值,而有的类型(无符号类型)不能表示负值。术语宽度 (width)用于描述存储整数时使用的内存量。使用的内存越多,则越 宽。C++的基本整型(按宽度递增的顺序排列)分别是char、short、 int、long和C++11新增的long long,其中每种类型都有符号版本和无符号版本,因此总共有10种类型可供选择。下面更详细地介绍这些整数类型。char类型有一些特殊属性(它最常用来表示字符,而不是数字)

学Python的同学可能会疑惑,布尔类型(bool)不也是整型的子类型吗,为什么不算呢?在C++中,bool是一种独立的数据类型,它可以有整型的表达方式(0和1)但它本身不和整型或任何数据类型有关系

整型类别

计算机内存由一些叫做位(bit)的单元组成。C++的short、int、long和long long类型通过使用不同数目的位来存储值,最多能够表示4种不同的整数宽度。如果在所有的系统中,每种类型的宽度都相同,则使用起来将非常方便。例如,如果 short总是16位,int总是32位,等等。不过并非那么简单,没有一种选择能够满足所有的计算机设计要求。C++提供了一种灵活的标准,它确保了最小长度(从C语言借鉴而来)

  1. short至少16位
  2. int至少与short一样长
  3. long至少32位,且至少与int一样长
  4. long long至少64位,且至少与long一样长

位与字节

计算机内存的基本单元是位(bit)。可以将位看作一个开关,可以开,也可以关。关表示值0,开表示值1。8位的内存块可以设置出256种不同的组合,因为每一位都可以有两种设置,所以8位的总组合数为2×2×2×2×2×2×2×2,即256。因此,8位单元可以表示0-255或者-128到127。每增加一位,组合数便加倍。这意味着可以把16位单元设置成65 536个不同的值,把32位单元设置成4294672296个不同的值,把64位单元设置为18446744073709551616个不 同的值。作为比较,unsigned long存储不了地球上当前的人数和银河系的星星数,而long long 能够。

字节(byte)通常指的是8位的内存单元。从这个意义上说,字节指的就是描述计算机内存量的度量单位,1KB等于1024字节,1MB等于1024KB。然而,C++对字节的定义与此不 同。C++字节由至少能够容纳实现的基本字符集的相邻位组成,也就是说,可能取值的数目必须等于或超过字符数目。在美国,基本字符集通常是ASCII和EBCDIC字符集,它们都可以用8 位来容纳,所以在使用这两种字符集的系统中,C++字节通常包含8位。然而,国际编程可能需要使用更大的字符集,如Unicode,因此有些实现可能使用16位甚至32位的字节。有些人使用术语八位组(octet)表示8位字节

当前很多系统都使用最小长度,即short为16位,long为32位。这仍然为int提供了多种选择,其宽度可以是16位、24位或32位,同时又符合标准;甚至可以是64位,因为long和long long至少长64位。通常,在老式IBM PC的实现中,int的宽度为16位(与short相同),而在Windows、macOS和很多其他微型计算机的实现中,为32位(与long相同)。有些实现允许选择如何处 理int。类型的宽度随实现而异,这可能在将C++程序从一种环境移到另一种环境(包括在同一个系统中使用不 同编译器)时引发问题。但只要小心一点,就可以最大限度地减少这种问题

可以像使用int一样,使用这些类型名来声明变量:

#include <iostream>

int main(void)
{
    int n_hello;
    hello = 5;

    short s_hello;
    s_hello = 5;

    long l_hello;
    l_hello = 5;

    return 0;
}

 short是short int的简称,而long是long int的简称,但是大家几乎都不使用比较长的形式

下篇预告

下一篇我们具体讲讲变量在各个环境中的大小(列表格太麻烦了,不妨我们写个程序来看?)


结语

作者会经常帮助有问题的小伙伴解决问题如果你有问题,可以直接到评论区指出,作者会在看到后到24小时内给予答复

如果本文有任何问题欢迎在评论去指出,如果喜欢这篇文章,希望能点赞评论关注

如果你们身边有像你提起过这个领域的,或者希望可以和ta一起进步的,把这篇文章分享给ta吧

4363字,8个父项,5个子项,1个孙子项


快捷翻页

第0篇               第2篇                第4篇

第1篇               第3篇                第5篇


本文参考文章,书籍

参考文章

https://www.cnblogs.com/chuanzhang053/p/10582861.html

编程变量命名规则及编程单词缩写字典 

C语言中bool是占用1字节吗?如果只占用一位怎么做呢?_百度知道 

文心一言 

参考书籍 

C++ Primer Plus

猜你喜欢

转载自blog.csdn.net/cat_bayi/article/details/132944632
今日推荐