首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

kotlin基础--变量常量、条件语句、函数

它也是一门跨平台语言,可以脱离虚拟机,直接编译成二进制可执行文件在各大平台运行 本文基于有一定的Java基础 一.变量常量 1.声明变量 var关键字 变量名:变量类型 = 初始值 //var...关键字 变量名:变量类型 = 初始值 var name: Int = 5 2.内置数据类型 数据类型 3.只读变量 我们可以用val关键字声明只读变量,和Java中final关键字相同 fun...main() { // 变量名:变量类型 = 初始值 var age: Int = 5 val name:String = "张三" } 4.类型推断 声明变量时如果已经初始化...,kotlin允许省略数据类型 fun main() { // 变量名 = 初始值 var age = 5 val name = "张三" } 5.常量 只读变量并不是常量,也是可以修改的...修饰符 函数声明关键字 函数名 入参 返回类型 private fun getInfo(age: Int): String 2.函数入参 可以给入参设定默认值

53510

Effective C++学习笔记之#define

内容 一、对于单纯常量 1、const   有两种特殊的const,常量指针和class专属常量; (1)常量指针   又分为常量指针、指针常量、指向常量的指针常量; const double *p;或者...double * const p;*读作指针,const读作常量,为指针常量;   本质是个常量,是形容这个常量的类型是指针,也即指针指向不能改变。....h头文件里声明 static const double score;     .cpp实现文件里设初始值 const double Student::score = 66.6; (很多编译器不支持在声明的时候设置初始值...,只能将声明和设初值分开) 2、enum   如果遇到上述“不支持在声明的时候设置初始值”,就展现了enum的必要性。...in-class 初值设定,就应该用enum来代替: class A { private: enum {LEN = 5}; int score[LEN]; }; 二、对于形似函数的宏   将简单的函数写成宏

44610
您找到你想要的搜索结果了吗?
是的
没有找到

Swift 基础之常量和变量

常量的值一旦设定就不能改变,而变量的值可以随意更改。 一:声明常量和变量 常量和变量必须在使用前声明,用 let 来声明常量,用 var 来声明变量。...二:类型标注 当你声明常量或者变量的时候可以加上类型标注(type annotation),说明常量或者变量中要存储的值的类型。...如果你在声明常量或者变量的时候赋了一个初始 值,Swift 可以推断出这个常量或者变量的类型。...在上面的例子中,没有给 welcomeMessage 赋初始值,所以变量 welcomeMessage 的类型是通过一 个类型标注指定的,而不是通过初始值推断的。...一旦你将常量或者变量声明为确定的类型,你就不能使用相同的名字再次进行声明,或者改变其存储的值的类型。同时,你也不能将常量与变量进行互转。

45220

scanf函数输入与变量定义

但是不能以数字开头,其中的特殊符号只能由下滑建"_" c语言中的关键字也不能作为变量(标识符)的开头); 例句 int price=0 , 这一样定义了一个变量,变量的名字是price,类型是int,初始值为...比如上面的源码里我们要设定一个变量来保存用户输入的价格时,我们就需要设定一个变量来保存它。...int change =AMOUNT(表示金额的一个英文,让自己看一眼就知道这个数是金额)-price 这一串变量的常量是AMOUNT,如果多次使用可以设定常量为AMOUNT,若要修改常量直接修改这一串变量中的...("%d",&price):假如说用户输入了3这个数字,我们的程序会把3这个数字代入到scanf()里的的&price里,意思就是不管用户输入多少&price就会变成多少(我们谁当price变量没有给初始值...); ","把两个表达式连在了一起,"%d"必须取后面的整数(不然代码出错),所以用户输入的数值就变成了"%d"的数值; 接下来int change=AMOUNT(常量100)-price(用户设定price

1.5K10

JVM 类加载机制

另外注意这里的几个阶段是按顺序开始,而不是按顺序进行或完成,因为这些阶段通常都是互相交叉地混合进行的,通常在一个阶段执行的过程中调用或激活另一个阶段。 ?...【2】所设置的初始值通常情况下是数据类型默认的零值(如0、0L、null、false等),而不是被在 Java代码中被显式地赋予的值。...【3】假设一个类变量的定义为:public static int value = 3;那么变量 value在准备阶段过后的初始值为0,而不是3,因为这时候尚未开始执行任何 Java方法,而把 value...我们可以理解为 static final常量在编译期就将其结果放入了调用它的类的常量池中。 解析:把类中的符号引用转换为直接引用。...在 Java中对类变量进行初始值设定有两种方式: 【1】声明类变量时指定初始值; 【2】使用静态代码块为类变量指定初始值; JVM初始化步骤: 【1】假如这个类还没有被加载和连接,则程序先加载并连接该类

46720

左值和右值、左值引用与右值引用、移动语句(2)「建议收藏」

int c; }; int&& f(){ int&& var =1; return var; } str&& g(); int&& rc = g().c; 在此示例中,右值引用b的初始值设定是...rvalue reference rc的初始值设定是xvalue,因为它是一个通过xvalue表达式访问非静态非引用数据成员c的表达式。仅限C ++ 11及以后版本。...未定义的行为 左值是指不是右值类型的对象,也不是从右值类型派生的类型。 未定义的行为 左值是非类型类型,由任一类型限定 常量 要么 挥发物。 转换后的类型也不合格 常量 要么 挥发物。...非常量引用的初始值必须为左值,无法从“int”转换为“int &” int b = 2; # 非常量左值 int &a = b; # 非常量左值引用绑定到非常量左值,编译通过...这是因为在move构造函数中,s虽然是一个非常量右值引用,但其本身却是一个左值(是持久对象,可以对其取地址),因此调用*this = s时,会使用拷贝赋值函数而不是move赋值函数,而这已与move构造函数的语义不相符

2.5K20

Golang基础学习之常量

如何定义常量 const 常量常量类型 = 常量初始值 常量的定义和变量是相同的,不同的是常量定义使用const关键字,而变量使用var关键字。...这里一定要给一个初始值,在变量中不给初始值,在编译中会根据数据类型分配一个初始值,但是在常量中是不行的。使用常量的注意事项 1.常量名使用大写来定义。 2.常量一旦定义,便不可更改。...3.常量定义时,等号右侧只能是一个具体的值或者常量表达式。 4.常量表达式种的函数必须是内置函数,而不是自定义函数。 5.在定义常量组时,如果常量没有给初始值,则使用前面常量的值。...// 常量组定义常量默认初始值 const ( AGE int = 1 AGE1 ) func main() { fmt.Println(AGE) // 输出1 fmt.Println(AGE1...)// 输出1 } 6.在定义常量组时,如果常量默认使用前面的常量值,这时常量的个数一定要匹配。

33400

expr_const在函数前与函数后的区别

const int sz = get_size(); staff_size的初始值虽然是个字面值常量,但它的数据类型只是普通的int而非const int,还是可以被重新赋值的,所以不是常量表达式。...sz本身是一个常量,但它的具体值直到运行时才能获取到,所以也不是常量表达式。 二、constexpr变量 在一个复杂系统中,很难分辨一个初始值到底是不是常量表达式。...当我们用一个非常量表达式调用scale函数时,比如int i = 3的对象i,返回值则不是一个常量表达式。当把scale函数用在需要常量表达式的上下文中时,编译器发现不是常量表达式,发出错误信息。...字面值类型包括:算数类型、引用、指针,自定义类、string等类型不是字面值类型,也就不能定义成constexpr。 尽管指针和引用都能定义成constexpr,但它们的初始值却受到严格限制。...如果一个数据成员含有类内初始值,这内置类型成员的初始值必须是一条常量表达式;如果成员属于某种类类型,这初始值必须使用成员自己的constexpr构造函数。

73930

预处理--》编译--》运行的区别

枚举类型的成员是常量,它们的值由编译器自动分配,例如定义了上面的枚举类型之后,RECTANGULAR就表示常量0,POLAR 表示常量1。...局部变量存储空间地址也许会随着每次函数调用时而不同,如果你设定了初值,那空间怎么变里面的值都是你赋予的那个,但如果没有初始化,那每次运行都是不确定的值。...其实加了关键字const只是提示编译器这个变量是常量,如果我们在接下来的操作中试图更改它,编译器会报错,而并不是真正的常量,上面的例子也说明通过指针也是可以更改的,什么情况下完全不能修改呢,当A是加const...如果全局变量前面加个前缀static则表示此变量是local的而不是global的,意思是不能被其他文件所调用。...如double pi = acos(-1.0); 因为程序开始运行时要用适当的值来初始化全局变量,所以初始值必须保存在编译生成的可执行文件中,因此初始值在编译时就要计算出来,然而上面那种Initializer

85470

JAVA JVM类加载过程的学习

2.准备: 正式为类变量(static变量)分配内存并设置类变量初始值的阶段(该初始值只是默认的初始值,并不是代码中设定的值)这些内存都将在方法区进行分配。...3.解析: 虚拟机常量池内的符号引用替换为直接引用的过程。 初始化 1.初始化阶段实质性类构造器()方法的过程。...类加载全过程 1.类的主动引用(一定会发生类的初始化) new一个类的对象 调用类的静态成员(除了final常量)和静态方法 使用java.lang.reflect包的方法对类进行反射调用 当虚拟机启动...则先会初始化他的父类 2.类的被动引用(不会发生类的初始化) 当访问一个静态域时,只有真正声明这个域的类才会被初始化 通过子类引用父类的静态变量,不会导致子类初始化 通过数组定义类引用,不会触发此类的初始化 引用常量不会触发此类的初始化...(常量在编译阶段就存入调用类的常量池中了) ---- 实验代码: package classinit; public class Demo01 { static{ System.out.println

44440

Java基础语法(二)——数据类型

二、 long 长整型类型 1.基本语法格式 long 变量名 = 初始值; 代码示例: long num = 10L; // 定义一个长整型变量, 初始值写作 10l 也可以(小写的 L, 不是数字...4.注意事项 (1) 基本语法格式和创建 int 变量基本一致, 只是把类型修改成 long (2)初始化设定的值为 10L , 表示一个长整型的数字. 10l 也可以....(2) 和上面的类型不同, String 不是基本类型, 而是引用类型(后面重点解释)....常量主要有以下两种体现形式: 1.字面值常量 10 int 字面值常量(十进制) 010 int 字面值常量(八进制) 由数字 0 开头. 010 也就是十进制的 8 0x10 int 字面值常量(十六进制...所以我们得知,并不是所有类型的数据都可以强制类型转换。 结论: ? 5.小结 (1)不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型.

60520

Java学习历程之----基础篇(四)

在实际程序中,我们可根据数据在程序运算过程中是否发生改变来选择使用常量代表还是变量代表。 一、常量 顾名思义,常量就是在程序运行过程中一直保持不变的数据,声明常量的同时要赋予一个初始值。...,value 是初始值。...静态常量作用域为全局,不需要创建对象就可以访问它,能被类和对象调用;成员常量定义在类中,在整个类中都可以被访问,但不能修改;局部常量作用域为所定义的局部,没有默认初始值,也不能被修改。...它们之间的区别与联系如下表所示 在定义变量时,需要注意如下内容: 1.变量是类或者结构中的字段,如果没有显式地初始化,默认状态下创 建变量并默认初始值为 0。...,那样只会浪费时间,安慰自己说花费时间去学习了,最后你就会一直是码农,而不是程序员。

23530

类加载器知识点吐血整理

肯定不是的,其实 jvm 只有在“使用”该 class 文件时才会加载,这里的“使用”指主动使用,主动使用只有下列几种情况: 1.当创建一个类的实例时,比如使用 new 关键字或者反射、克隆、反序列化...验证 准备 准备阶段主要就是为类分配相应的内存空间,并设置初始值,常用的初始值如下表所示: 数据类型 默认初始值 int 0 long 0L short (short)0 char '\u0000'...3 被使用,那我们去看常量池中第 3 的内容,如下: #3 = Methodref #17.#18 // java/io/PrintStream.println:(...= NameAndType #25:#7 // println:()V 其中第 17 又引用到了第 24 ,第 18 又引用了 第 25 和 7 ,分别如下:...准备阶段只是分配了相应的内存空间,并设置了初始值

35620

C语言变量与常量

跟着肯哥(不是我)学C语言的变量和常量、跨文件访问、栈空间 栈空间还不清楚,期待明天的课程内容 C变量 变量(Variable)是用于存储和表示数据值的名称。...也就是说,存在包含关系: 关于声明和初始化,我还记得当初学的时候,老师专门强调了这俩不是一回事。...变量定义 定义包括三部分:变量类型、变量名和初始值(可选) 如果没有初始值,那就是声明 如果有初始值,那就是初始化 变量类型(Variable Type)指定了变量所存储数据的类型和大小。...sizeof是一个关键字,不是运算符,也就是说它不是函数,它是在编译时就计算出结果的而不用等待运行时。 C语言内置关键字是不包含malloc的。因为学数据结构的时候经常用到,我之前以为它是的。...初始值(Initial Value)是可选的,用于给变量赋予一个初始值。如果在定义时没有提供初始值,变量将有一个未知的、未初始化的值。此时,变量的值是不确定的,需要在使用前对其进行赋值。

13120

C++中变量声明与定义的规则

(这意味着通过auto定义的变量必须有初始值)。...为了执行这个替换,编译器必须知道变量的初始值,如果程序包含多个文件,那么每个用了这个const对象的文件都必须得能访问到它的初始值才行(即每个文件都要定义const对象)。...允许常量引用绑定非常量对象、字面值甚至一般表达式 一般而言,引用的类型必须与其所引用对象的类型一致,但是有两个例外: 初始化常量引用时允许用任意表达式作为初始值,只要该表达式的结果能转换成引用类型即可,...顶层const与底层const 指针本身是一个对象,因此指针本身是不是常量与指针所指对象是不是常量是两个独立的问题,前者被称为顶层const,后者被称为底层const。...仅当size()是一个constexpr函数时才是常量表达式, 运行时才能获得具体值就不是常量表达式 在一个复杂系统中,我们很难分辨一个初始值是否是常量表达式,通过constexpr关键字声明一个变量

2.2K10

constexpr 和 常量表达式

常量表达式 常量表达式是指值不会改变并且在编译过程就能得到计算结果的表达式。 字面值属于常量表达式,用常量表达式初始化的const对象也是常量表达式。 那么是什么来就决定是不是常量表达式呢?...一个对象是不是常量表达式主要看它的数据结构和初始值。...不是常量表达式 const int sz = get-size(); //sz 不是常量表达式 注释: litter 虽然是一个字面常量但是它的类型只是普通的类型int,所以不是常量表达式。...sz 虽然是一个常量(const)但是它的具体值只能运行时才能获取,所以不是常量表达式。...不能使用普通函数作为constexpr变量的初始值。 一般来说,如果认定变量是一个常量表达式,那就把它声明成constexpr类型。

15330
领券