热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

malloc函数的作用,c语言编程static作用

C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。对该类


的静态有两种用法:面向过程编程中的静态和面向对象编程中的静态。 前者适用于常规变量和函数,与类无关后者主要说明静态在类中的作用。


另一方面,面向过程设计中的静态1、全局静态变量为全局数据区域分配存储器;


未初始化的静态全局变量由程序自动初始化为0。 除非明确初始化,否则自动变量的值是随机的。


静态全局变量显示在整个声明的文件中,而不显示在文件之外。


2、局部静态变量为全局数据区域分配内存;


静态局部变量只有在程序运行到该对象的声明目标时才初始化。 这意味着以后的函数调用将不再初始化。


静态局部变量一般在声明处初始化,如果未显式初始化,程序会自动初始化为0;


在程序执行结束之前,它将一直驻留在全局数据区。 但是,该范围是局部范围,当定义该范围的函数或语句块结束时,该范围将结束


3、静态函数静态函数不能在其他文件中使用;


其他文件可以定义同名函数,没有冲突;


二、面向对象的静态关键字(类中的静态关键字) 1、类的静态数据成员静态数据成员对该类中的所有对象都是公共的。 对于该类中的多个对象,静态数据成员只分配一次内存,以便所有对象都可以共享。 因此,静态数据成员的值在所有对象中是相同的,并且可以更新该值;


静态数据成员存储在全局数据区域中。 无法在类声明中定义,因为在定义静态数据成员时分配空间。 在Example 5中,语句int Myclass:Sum=0; 定义静态数据成员;


静态数据成员与常规数据成员一样遵循公共、保护和私有访问规则;


静态数据成员为全局数据区域分配内存,并由属于类的所有对象共享,因此不属于特定类对象,如果未生成类对象,则会显示范围。 也就是说,如果未生成类的实例,则可以对其进行操作。


静态数据成员初始化与常规数据成员初始化不同。 静态数据成员的初始化格式如下:


<; 数据类型>; <; 类名>;<; 静态数据成员名称>;=<; 值>;


类的静态数据成员有两种访问格式。


<; 类对象名称>; <; 静态数据成员名称>; 或<; 类型名称>;<; 静态数据成员名称>;


如果允许静态数据成员访问,也就是说,公共成员可以在程序中按上述格式引用静态数据成员。


静态数据成员主要用于每个对象具有相同属性的情况。 例如,对于存款类,每个实例的利息都是一样的。 所以,应该让利息成为存款类的静态数据成员。 这有两个优点。 第一,无论定义了多少存款对象,利息数据的成员都共享分配给全局数据区域的内存,从而节省存储空间。 第二,如果需要变更利息,只要变更一次,所有存款对象的利息都会全部变更。


2、类静态成员函数出现在类外的函数定义不能指定关键字static;


静态成员之间的相互访问,包括静态成员函数对静态数据成员的访问和对静态成员函数的访问;


非静态成员函数可以自由访问静态成员函数和静态数据成员。


静态成员函数无法访问非静态成员函数和非静态数据成员。


由于没有this指针开销,静态成员函数与类的全局函数相比速度稍快。


调用静态成员函数。 使用成员访问操作符(.)和(-),可以在类的对象或指向类对象的指针上调用静态成员函数,也可以直接使用以下格式:


<; 类名>;<; 静态成员函数名称>; (<; 参数表>;


调用类的静态成员函数。


推荐阅读
  • c语言基础编写,c语言 基础
    本文目录一览:1、C语言如何编写?2、如何编写 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 如何在Windows窗体应用程序中实现文件加密与解密功能
    本文介绍了在Windows窗体应用程序中实现文件加密与解密功能的步骤。首先,通过新建项目选择Windows窗体应用程序,并在自动创建的From1中构建启动窗体。然后,选择要加密的文件并获取页面的密码,判断密码是否大于六位数。如果不满足条件,提示用户添加文件后缀(.mr)以表示该文件已加密,并将文件内容进行乱码处理。通过本文的方法,可以实现文件的安全加密与解密。 ... [详细]
author-avatar
myj2017
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有