变量

小沈的C++学习7——指针

[亡魂溺海] 提交于 2020-03-25 15:00:59
  这节课终于学到指针了,话说感觉我是不是在前面几篇博客已经用过不少次这玩意了。但是指针到底是个什么东西呢?今天就让我们来学习指针这个东西。   首先我们小学一年级就学过,电脑里面有内存这个东西,就是利用电位高低存储各种数据,然后可以让cpu各种调用的小容器,而各种数据就听从程序的指挥,在一个个小格子里落户,这个格子就是内存地址。这个时候如果一个函数内部运行的时候在内存上留下了一串数据,它想把这一串数据都交给主函数,那它就可以直接把某个小格子的位置告诉主程序,主程序就可以利用这个位置信息直接到内存里去找这个函数留下来的数据。而这个位置信息就是指针。   首先我们要知道,指针本身也是一种数据,意思就是我们拿到一个指针,到指针指的位置上拿到一个数据,可能也是一个指针。   有了指针,我们甚至可以自己创造一个数据类型。比如我们所有函数都遵循这样一个约定:返回一个指针,指针指向一个指针数组,指针数组的一个指针指向一个数字,代表这个数据的长度或者内存长度,第二个指针指向另一个数字数组,代表这个数据里面每个数据的数据类型,第三个及之后的指针则指向各个数据。这个数据类型是不是很熟悉?没错,只要我们愿意,我们也可以手作一个列表。并且由于指针可以指向指针,这个列表可以不断嵌套(禁止禁止套娃)。 一、指针定义和运算 首先既然我们有了地址,那我们也要知道地址的数据有多长,是个什么类型的数据

成员变量和局部变量有什么区别?

此生再无相见时 提交于 2020-03-25 15:00:34
3 月,跳不动了?>>> FAQ2.13 成员变量和局部变量有什么区别? class A { int a;// 成员变量 public static void main(String[] args) { int b;// 局部变量 } } ———————————————————————————————————————————————————————————————————————————————————————— 类体由 2 部分构成 : 一部分是变量的定义 ; 一部分是方法的定义 ( 一个类中可以有多个方法 ) 在变量定义部分定义的变量叫做类的成员变量 , 成员变量在整个类中都有效 . ( 全局变量应该是成员变量的俗称 ) 在方法体中定义的变量叫做局部变量 , 局部变量只在定义它的方法中有效 . 成员变量又分为 实例变量 和 类变量 (static 静态变量 ). class One { float x; //x 为实例变量 static int y; // 只要有关键字 static,y 为类变量 } ———————————————————————————————————————————————————————————————————————————————————————— 1. 成员变量可以被 public , protect , private , static

C#命名规范 保存一下以备后用

与世无争的帅哥 提交于 2020-03-25 14:45:09
命名规范制定意义 1 方便代码的交流和维护,便于日后自己的再次阅读。 2 不影响编码的效率,不与大众习惯冲突。 3 使代码更美观、阅读更方便。 4 使代码的逻辑更清晰、更易于理解 命名规范制定原则 首要原则 有意义的,描述性的词语来命名。能够一眼看出它作什么。别使用会引起误解的名字。如果名字一目了然,就无需用文档来解释方法的功能了 1. 除约定俗成的,别用缩写。用name, address, salary等代替 nam, addr, sal 2. 除用于循环,别使用单个字母的变量象i, n, x 等. 而要使用 index, temp等。 for ( int i = 0; i < count; i++ ){ ...} 其他习惯 l 除了界面控件外,不要使用类型前缀。比如:使用名称amount,而不是 intAmount; l 类:使用名词、名词短语命名。比如:public class FileStream; l 方法:使用动词、动词短语开始。比如:CreateUser(), RemoveAt()等; l 接口:以 I 开始,后面加上名词、名词短语、形容词命名。比如:IDisposable; l 常量:所有单词大写,多个单词之间用 "_" 隔开。public const string PAGE_TITLE = "Welcome"; l 命名空间:基本格式: CompanyName

成员变量和局部变量

元气小坏坏 提交于 2020-03-25 14:40:48
3 月,跳不动了?>>> 成员变量( 存在于堆内存中,和类一起创建 )和局部变量( 存在于栈内存中,当方法执行完成,让出内存,让其他方法来使用内存 )。 区别 1、在类中的位置不同 成员变量:在类中方法外面 局部变量:在方法或者代码块中,或者方法的声明上(即在参数列表中) 2、在内存中的位置不同,可以看看 Java程序内存的简单分析 成员变量:在堆中(方法区中的静态区) 局部变量:在栈中 3、生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用或者代码块的执行而存在,随着方法的调用完毕或者代码块的执行完毕而消失 4、初始值 成员变量:有默认初始值,java会给她一个初始值:基本数据类型是0,应用数据类型是null 局部变量:没有默认初始值,使用之前需要赋值,否则编译器会报错(The local variable xxx may not have been initialized) 局部变量的优先级高于成员变量 public class myTest3 { String name = "成员变量"; public static void main(String[] args) { new myTest3().show(); } public void show() { //局部变量优先级比成员变量高 String name = "局部变量";

JavaScript命名规范

人盡茶涼 提交于 2020-03-25 11:56:30
转自http://blog.bingo929.com/dojo-javascript-style-guide.html 前言 良好的JavaScript书写习惯的优点不言而喻,今天彬Go向大家推荐Dojo Javascript 编程规范,相当不错的 Javascript 编程风格规范,建议大家可以借鉴一下此规范编写 Javascript。感谢i.feelinglucky的翻译。 序 Any violation to this guide is allowed if it enhances readability. 所有的代码都要变成可供他人容易阅读的。 快读参考 核心 API 请使用下面的风格: 结构 规则 注释 模块 小写 不要使用多重语义(Never multiple words) 类 骆驼 公有方法 混合 其他的外部调用也可以使用 lower_case(),这样的风格 公有变量 混合 常量 骆驼 或 大写 下面的虽然不是必要的,但建议使用: 结构 规则 私有方法 混合,例子:_mixedCase 私有变量 混合,例子:_mixedCase 方法(method)参数 混合,例子:_mixedCase, mixedCase 本地(local)变量 混合,例子:_mixedCase, mixedCase 命名规范 1.变量名称 必须为 小写字母。 2.类的命名使用骆驼命名规则,例如

开发代码编写规范文档(适用于asp.net_C#)

淺唱寂寞╮ 提交于 2020-03-25 11:19:59
1.编写目的 为了使团队中的每一位成员都形成统一的开发约定,特制定本规范文档,在今后的开发过程中,请严格按照此文档约定的规则进行编码。通过此规范,希望可以给各程序员之间起到沟通的桥梁的作用,并增强程序的可读性。 如在使用过程中,碰到本文档中没进行约定的规则,待商议后对该文档进行补充完善。 2.程序命名规范 基本约定 所有的命名名称都必须使用能直接体现具体含义的名字。 不能使用X,Y,Z,等无意义的名称进行定义,除循环变量除外。 所有的成员变量必须在所有成员方法前面声明,用一个换行把它和方法分开 如: public class ClsLogin { TextBox txtUserName;// TextBox txtPassWord;// public Login() { } } 类文件名的名称必须要能反应类的内容,最好是和类同名,一个文件只写一个类,文件和文件夹的名称也应该精确地说明它们的用途。 如: 文件名:Login.cs 类名:public class ClsLogin 大括号"{"要新起一行。 正确编写: public class ClsLogin { } 错误编写: public class ClsLogin{ } switch语句一定要有default来处理意外情况。 同程序外部连接(如连接数据库、接口、文件等)一定要捕获任何类型的异常(try)给出友好的消息给用户

volatile 手摸手带你解析

不打扰是莪最后的温柔 提交于 2020-03-25 11:01:03
前言 volatile 是 Java 里的一个重要的指令,它是由 Java 虚拟机里提供的一个轻量级的同步机制。一个共享变量声明为 volatile 后,特别是在多线程操作时,正确使用 volatile 变量,就要掌握好其原理。 特性 volatile 具有 可见性 和 有序性 的特性,同时,对 volatile 修饰的变量进行单个读写操作是具有 原子性 。 这几个特性到底是什么意思呢? 可见性: 当一个线程更新了 volatile 修饰的共享变量,那么任意其他线程都能知道这个变量最后修改的值。简单的说,就是多线程运行时,一个线程修改 volatile 共享变量后,其他线程获取值时,一定都是这个修改后的值。 有序性: 一个线程中的操作,相对于自身,都是有序的,Java 内存模型会限制编译器重排序和处理器重排序。意思就会说 volatile 内存语义单个线程中是串行的语义。 原子性: 多线程操作中,非复合操作单个 volatile 的读写是具有原子性的。 可见性 可见性是在多线程中保证共享变量的数据有效,接下来我们通过有 volatile 修饰的变量和无 volatile 修饰的变量代码的执行结果来做对比分析。 无 volatile 修饰变量 以下是没有 volatile 修饰变量代码,通过创建两个线程,来验证 flag 被其中一个线程修改后的执行情况。 /** * Created

JDK搭配环境变量

限于喜欢 提交于 2020-03-25 08:44:21
进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置: 1、下载jdk,以jdk-8u131-windows-x64为例 2、安装jdk-8u13-windows-x64 3、配置环境变量:右击“我的电脑”-->"高级系统设置"-->"环境变量" 1)在系统变量里新建JAVA_HOME变量,变量值为:C:\Program Files\Java\jdk1.6.0_14(根据自己的安装路径填写) 2)新建classpath变量,变量值为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 3)在path变量(已存在不用新建)添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin(注意变量值之间用“;”隔开) 4、检查环境变量是否搭配成功,打开win键,输入cmd并运行,输入“java”或者“javac”如果能正常打印用法说明配置成功! 补充环境变量的解析: JAVA_HOME:jdk的安装路径 classpath:java加载类路径,只有类在classpath中java命令才能识别,在路径前加了个"."表示当前路径。 path:系统在任何路径下都可以识别java,javac命令。 来源: https://www.cnblogs.com/Dream-demo/p/6994741.html

作业10总结

孤人 提交于 2020-03-25 08:43:54
一、知识点:   1.指针表量的概念:     变量可以用来存放数值(如整数、实数等),也可以用来存放地址(另一个变量的地址),这种专门用于储存指针(地址)的变量就称为指针变量。   2.指针变量的定义:     在定义指针变量时,需要用指针声明符“*”表示此变量并非一般变量,而是用来存放其他变量地址的指针变量。由于每一个变量都属于一个特定类型 ,因此在定义指针变量时,需要声明该变量的类型,以便能够通过指针正确访问特定类型的数据。     定义一个指针的语法格式为:       基类型标识符 *指针变量名;   (1)“基类型”就是指针所指数据的类型。   (2)定义指针变量的时,在指针变量名前加符号“*”。“*”称为指针声明符,用于说明其后的名字是一个指针变量名。   3.指针变量名的初始化和赋值:     和其他变量一样,指针变量也可以进行初始化。可以用变量的地址对指针变量进行初始化,但必须注意:该变量的类型必须和指针变量的基类型相同。也可以用一个指针变量的值给另一个指针变量赋值,但它们应该具有相同的基类型。   4.引用指针变量:     当一个指针变量被初始化或被赋值之后,它就指向一个特定的变量。这时,就可以使用指针访问它所指向的内存空间。使用指针访问它所指向的内存空间的方法是在指针变量名前加一个“*”号。此处的“*”号是“指针运算符”。又称为“间接访问运算符”,它作用于

C++的那些事:你真的了解引用吗

柔情痞子 提交于 2020-03-25 07:42:34
一、引用的本质是什么 说到引用,一般C++的教材中都是这么定义的: 1,引用就是一个对象的别名。 2,引用不是值不占内存空间。 3,引用必须在定义时赋值,将变量与引用绑定。 那你有没有想过,上面的定义正确吗?编译器是如何解释引用的? 这里先给出引用的本质定义,后面我们再进一步论证。 1,引用实际是通过指针实现的。 2,引用是一个常量指针。 3,引用在内存中占4个字节。 4,在对引用定义时,需要对这个常量指针初始化。 二、探究本质 我们从最简单的变量的定义开始,看编译器会做哪些事情。 int var = 42; mov dword ptr [var],2Ah // 对应汇编代码 上面语句申请了一块内存空间,占4个字节,存放了一个int型的变量。内存里放的是42的二进制码。 汇编代码向我们表达的意思就是把42写入以var为地址的内容区域。var有点像我们理解上的指针,只是编译器并没有把它抽象出来,而是让我们更表象的理解:申请一个变量,它的值为42。 那么 var这个变量名放在哪呢 ? 我们知道程序如果访问内存里的数据,需要通过地址来进行访问,所以上面的代码在经过编译器生成目标代码时,用存放42的地址了所有的var,所以结论时, 目标文件中不存在var,所以变量名本身是不占内存的 。 而我们知道,引用是变量的一个别名。那么,从这很多人会联想到,引用会不会也只是一个名字而已