CLanguage

c语言指针详解(概念示例)

北慕城南 提交于 2020-08-17 16:01:13
指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。 学习指针是学习C语言中最重要的一环, 能否正确理解和使用指针是我们是否掌握C语言的一个标志。同时, 指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念,还必须要多编程,上机调试。只要作到这些,指针也是不难掌握的。   指针的基本概念 在计算机中,所有的数据都是存放在存储器中的。 一般把存储器中的一个字节称为一个内存单元, 不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等, 在第二章中已有详细的介绍。为了正确地访问这些内存单元, 必须为每个内存单元编上号。 根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址。 既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。 内存单元的指针和内存单元的内容是两个不同的概念。 可以用一个通俗的例子来说明它们之间的关系。我们到银行去存取款时, 银行工作人员将根据我们的帐号去找我们的存款单, 找到之后在存单上写入存款、取款的金额。在这里,帐号就是存单的指针, 存款数是存单的内容。对于一个内存单元来说,单元的地址即为指针,

c++ primer 第五版第七章

我只是一个虾纸丫 提交于 2020-08-13 17:03:48
7.01 利用2.6.1节所定义的Sales_data类为1.6节的交易处理程序编写一个新的版本。 struct Sales_data { ​ std::string bookNo; ​ unsigned units_sold = 0; ​ double revenue = 0.0; }; void test701() { ​ Sales_data total; ​ if (cin >> total.bookNo >> total.units_sold >> total.revenue) { ​ Sales_data trans; ​ while (cin >> trans.bookNo >> trans.units_sold >> trans.revenue) { ​ if (total.bookNo == trans.bookNo) { ​ total.units_sold += trans.units_sold; ​ total.revenue += trans.revenue; ​ } ​ else { ​ cout << total.bookNo << " " << total.units_sold << " " << total.revenue << endl; ​ total = trans; ​ } ​ } ​ cout << total.bookNo << " "

c++ primer 第五版第七章

半世苍凉 提交于 2020-08-13 17:02:09
7.01 利用2.6.1节所定义的Sales_data类为1.6节的交易处理程序编写一个新的版本。 struct Sales_data { ​ std::string bookNo; ​ unsigned units_sold = 0; ​ double revenue = 0.0; }; void test701() { ​ Sales_data total; ​ if (cin >> total.bookNo >> total.units_sold >> total.revenue) { ​ Sales_data trans; ​ while (cin >> trans.bookNo >> trans.units_sold >> trans.revenue) { ​ if (total.bookNo == trans.bookNo) { ​ total.units_sold += trans.units_sold; ​ total.revenue += trans.revenue; ​ } ​ else { ​ cout << total.bookNo << " " << total.units_sold << " " << total.revenue << endl; ​ total = trans; ​ } ​ } ​ cout << total.bookNo << " "

什么是进修编程言语之前

冷暖自知 提交于 2020-07-28 07:48:18
进修编程言语之前,起首要搞清晰“编程言语”这个概念。 很小的时分,怙恃就教我们启齿措辞,也教我们若何了解他人讲话的意思。经由长工夫的陶冶和自我进修,我们居然在不知不觉中学会了措辞,同时也能听懂其他小冤家措辞的意思了,我们开端向怙恃要零花钱买零食和玩具、被欺侮了向怙恃倾吐…… 我们说的是汉语,是“中国言语”,只需把我们的需哀告诉怙恃,怙恃就会知足,我们用“中国言语”来掌握怙恃,让怙恃做我们爱好的工作。 “中国言语”有固定的格局,每一个汉字代表的意思分歧,我们必需准确的表达,怙恃才干了解我们的意思。例如让怙恃给我们10元零花钱,我们会说“妈妈给我10块钱吧,我要买小汽车”。假如我们说“10元给我汽车小零花钱妈妈”,或许“妈妈给我10亿人平易近币,我要买F-22”,妈妈就会认为奇异,听不懂我们的意思,或许了解毛病,指摘我们。 我们经过有固定格局和固定词汇的“言语”来掌握别人,让别人为我们干事情。言语有许多种,包含汉语、英语、法语、韩语等,固然他们的词汇和格局都纷歧样,然则可以到达异样的目标,我们可以选择恣意一种言语去掌握别人。 异样,我们也可以经过”言语“来掌握盘算机,让盘算机为我们干事情,如许的言语就叫做编程言语(Programming Language)。 编程言语也有固定的格局和词汇,我们必需经由进修才会运用,才干掌握盘算机。 编程言语有许多种,常用的有C言语、C++、Java、C

Python类变量和实例变量(类属性和实例属性)

杀马特。学长 韩版系。学妹 提交于 2020-04-29 17:17:31
转载: http://c.biancheng.net/view/2283.html 无论是类属性还是类方法,都无法向普通变量或者函数那样,在类的外部直接使用它们。我们可以将类看做一个独立的空间,则类属性其实就是在类体中定义的变量,类方法是在类体中定义的函数。 前面章节提到过,在类体中,根据变量定义的位置不同,以及定义的方式不同,类属性又可细分为以下 3 种类型: 类体中、所有函数之外:此范围定义的变量,称为类属性或类变量; 类体中,所以函数内部:以“self.变量名”的方式定义的变量,称为实例属性或实例变量; 类体中,所有函数内部:以“变量名=变量值”的方式定义的变量,称为局部变量。 不仅如此,类方法也可细分为实例方法、静态方法和类方法,后续章节会做详细介绍。 那么,类变量、实例变量以及局部变量之间有哪些不同呢?接下来就围绕此问题做详细地讲解。 类变量(类属性) 类变量指的是在类中,但在各个类方法外定义的变量。举个例子: class CLanguage : # 下面定义了2个类变量 name = "C语言中文网" add = "http://c.biancheng.net" # 下面定义了一个say实例方法 def say (self , content ): print (content ) 上面程序中,name 和 add 就属于类变量。 类变量的特点是

Python学习06.04:Python类对象的创建和使用

安稳与你 提交于 2020-02-28 03:24:43
通过前面章节的学习,我们已经学会如何定义一个类,但要想使用它,必须创建该类的对象。 创建类对象的过程,又称为类的实例化。 Python 类的实例化 对已定义好的类进行实例化,其语法格式如下: # 创建类实例,但并没有创建变量引用实例 类名(参数) # 创建类实例,创建变量引用类实例 vairable = 类名(参数) 定义类时,如果没有手动添加 __init__() 构造方法,又或者添加的 __init__() 中仅有一个 self 参数,则创建类实例时的参数可以省略不写。 例如,如下代码创建了名为 CLanguage 的类,并对其进行了实例化: class CLanguage : # 定义了2个类变量 name = "C语言中文网" add = "http://c.biancheng.net" def __init__(self,name,add): # 定义2个实例变量 self.name = name self.add = add print(name,"网址为:",add) # 下面定义了一个say实例方法 def say(self, content): print(content) # 将该CLanguage对象赋给clanguage变量 clanguage = CLanguage("C语言中文网","http://c.biancheng.net") 在上面的程序中

Python学习06.10:Python property()函数:定义变量

旧城冷巷雨未停 提交于 2020-02-26 18:47:22
前面章节中,我们一直在用 “类对象.变量” 的方式访问类中定义的变量,其实这种做法是欠妥的,因为它破坏了类的封装原则。正常情况下,类包含的变量应该是隐藏的,只允许通过类提供的方法来间接实现对类变量的访问和操作。 因此,在不破坏类封装原则的基础上,为了能够有效操作类中的属性,类中应包含读(或写)类属性的多个 getter(或 setter)方法,这样就可以通过“类对象.函数(参数)”的方式操作变量,例如: class CLanguage: # 构造函数 def __init__(self,name): self.name = name # 设置 name 属性值的函数 def setname(self,name): self.name = name # 访问nema属性值的函数 def getname(self): return self.name # 删除name属性值的函数 def delname(self): self.name="xxx" clang = CLanguage("C语言中文网") # 获取name属性值 print(clang.getname()) # 设置name属性值 clang.setname("Python教程") print(clang.getname()) # 删除name属性值 clang.delname() print(clang.getname

Python学习06.06:Python类变量和实例变量

送分小仙女□ 提交于 2020-02-26 10:56:42
无论是类变量还是类函数,都无法向普通变量或者函数那样,在类的外部直接使用它们。我们可以将类看做一个独立的空间。 前面章节提到过,在类体中,根据变量定义的位置不同,以及定义的方式不同,类变量又可细分为以下 3 种类型: 类体中、所有函数之外:此范围定义的变量,称为 类变量 ; 类体中,所以函数内部:以“self.变量名”的方式定义的变量,称为 实例 变量 ; 类体中,所有函数内部:以“变量名 = 变量值”的方式定义的变量,称为 局部变量 。 那么,类变量、实例变量以及局部变量之间有哪些不同呢?接下来就围绕此问题做详细地讲解。 类变量 类变量指的是在类中,但在各个类方法外定义的变量。举个例子: class CLanguage : # 下面定义了2个类变量 name = "C语言中文网" add = "http://c.biancheng.net" # 下面定义了一个say实例方法 def say(self, content): print(content) 上面程序中,name 和 add 就属于类变量。 类变量的特点是,所有类的实例化对象都同时共享类变量,也就是说,类变量在所有实例化对象中是作为公用资源存在的。类方法的调用方式有 2 种,既可以使用类名直接调用,也可以使用类的实例化对象调用( 注意类调用和实例调用在修改时的不同 )。 比如,在 CLanguage 类的外部

Python学习06.07:Python实例方法、静态方法和类方法详解(包含区别和用法)

笑着哭i 提交于 2020-02-25 19:16:29
和类变量一样,类方法也可以进行更细致的划分,具体可分为 类函数、实例函数和静态函数 。 和类变量的分类不同,对于初学者来说,区分这 3 种类方法是非常简单的,即 采用 @classmethod 修饰的函数为类函数;采用 @staticmethod 修饰的函数为静态函数;不用任何修改的方法为实例函数(@classmethod 和 @staticmethod 都是函数装饰器) 。 接下来就给大家详细的介绍这 3 种类方法。 Python 类实例函数 通常情况下,在类中定义的函数默认都是实例函数。前面章节中,我们已经定义了不只一个函数方法。不仅如此,类的构造方法理论上也属于实例函数,只不过它比较特殊。 比如,下面的类中就用到了实例函数: class CLanguage: # 类构造函数,也属于实例函数 def __init__(self): self.name = "C语言中文网" self.add = "http://c.biancheng.net" # 下面定义了一个say实例函数 def say(self): print("正在调用say()实例函数") 实例函数最大的特点就是,它最少也要包含一个 self 参数,用于绑定调用此函数的实例对象(Python 会自动完成绑定)。实例函数通常会用类变量直接调用,例如: clang = CLanguage() clang.say()

Python学习06.12:Python封装机制及实现方法

元气小坏坏 提交于 2020-02-25 15:28:36
不光是 Python ,大多数面向对象编程语言(诸如 C++ 、 Java 等)都具备 3 个典型特征,即封装、继承和多态。其中,本节重点讲解 Python 类的封装特性,继承和多态会在后续章节给大家做详细讲解。 简单的理解封装(Encapsulation),即在设计类时,刻意地将一些变量和函数隐藏在类的内部,这样在使用此类时,将无法直接以“类对象.变量名”(或者“类对象.函数名(参数)”)的形式调用这些变量(或函数),而只能用未隐藏的类函数间接操作。 就好比使用电脑,我们只需要学会如何使用键盘和鼠标就可以了,不用关心内部是怎么实现的,因为那是生产和设计人员该操心的。 注意,封装绝不是将类中所有的函数都隐藏起来,一定要留一些像键盘、鼠标这样可供外界使用的类函数。 那么,类为什么要进行封装,这样做有什么好处呢? 首先,封装机制保证了类内部 数据结构 的完整性,因为使用类的用户无法直接看到类中的数据结构,只能使用类允许公开的数据,很好地避免了外部对内部数据的影响,提高了程序的可维护性。 除此之外,对一个类实现良好的封装,用户只能借助暴露出来的类函数来访问数据,我们只需要在这些暴露的方法中加入适当的控制逻辑,即可轻松实现用户对类中变量或函数的不合理操作。 并且,对类进行良好的封装,还可以提高代码的复用性。 Python 类如何进行封装? 和其它面向对象的编程语言(如 C++、Java