常量与变量

PHP语言基础

孤人 提交于 2019-12-03 12:19:17
一,PHP标记风格 1,xml风格 <?php echo "这个是xml风格的标记"; ?> 2,脚本风格 <scrippt language="php"> echo "这是是脚本风格"; </script> 3,asp风格 <% echo '这个是asp风格'; %> 4,简短风格 <? echo '这个是简短风格';?> 二,php注释符 1,单行注释 // 2,多行注释 /*...*/ 3,文档注释 /*****/ 行数为多少*为多少个 4,风格的注释 #同// 三,php数据类型 php中支持8种原始类型,4中标量类型(布尔型boolean,整型integer,浮点型float,字符串型string),2中复合类型(数组array,对象object),2种特殊类型(资源resource,null) 布尔型boolean:最简单的类型,只有两个值,真(true)和假(false)。 整型integer:整型数据类型只能包含整数,这些数据类型可以是正数和负数。 浮点型float:浮点数据类型用于存储数字,和整型不同的是只能存储有小数位的。例如1.0 1.2 字符串型string:字符串类型就是常见的字符类型组合即计算机所有能表示的一些字符集合。字符串由数字,字母,和符号组成,每个字符占用一个字节。定义字符串的方式有单引号' , 双引号",定界符<<<三种方式

C# 谁改了我的代码

易管家 提交于 2019-12-03 11:51:08
本文告诉大家一个特殊的做法,可以修改一个字符串常量 我们来写一个简单的程序,把一个常量字符串输出 private const string str = "lindexi"; static void Main(string[] args) { Foo(); Console.WriteLine(str); } 其中的 Foo 是其他的函数,大家可以猜到输出是 lindexi ,但是,实际上把Foo调用函数添加之后,输出是 Lindexi 被大写了。那么这时 Foo 做了什么? Foo 做的就是 C# 字符串首字符大写 public static unsafe void Foo() { fixed (char* ptr = str) { *ptr = char.ToUpper(*ptr); } } 虽然出现了问题,但是找到问题很简单,如果这时需要做一个安全有关的。让别人看到源代码也不知道怎么使用,那么就可以使用这个科技,下面就是显示技术的时候 我把 Foo 做一些修改,把 str 变量去掉,这样大家就难以通过搜索变量引用找到了这个函数。但是我在其他的某个地方使用了这个常量字符串,于是就把上面的 str 修改为 "lindexi" 。大家也许会想,这是两个变量,对他做什么修改也不会对之前的 str 有什么影响。实际上,请跑一下下面的代码。 public static unsafe void

记一道面试题

♀尐吖头ヾ 提交于 2019-12-03 10:22:44
在最近的面试中遇到一道基础的题目但是研究后发现大有文章,于是记下 题目是 : 为什么String 会被设计成final类 由于String是被final修饰,所以经常会被拿出来当做面试java基础的一个知识点。 我知道由于被final修饰,String是不可被修改的,每次操作都是等于在创建一个新的字符串,但是我并没有去深想为什么会被这样设计。 接下来看为什么会被这么设计: (以下是个人理解,如有错误,不当之处,欢迎指正) 首先先复习一下final修饰符: 1:被修饰的类不可被继承; 2:被修饰的方法不可以被重写; 3:被修饰的变量不可以被多次赋值; final修饰符从上面的说明可以看到,是为了保证被修饰的类/方法/变量不会被人修改。 那么为什么String类不可以让人修改继承呢? 我从String代码中找到了线索: Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are immutable they can be shared. 这是String类的注解说明,从上文可以得知,String一旦被创建就不可被改变

The Swift Programming Language

穿精又带淫゛_ 提交于 2019-12-03 07:56:22
基础部分(The Basics) 1.0 翻译:numbbbbb, lyuka, JaySurplus 校对:lslxdx 2.0 翻译+校对:xtymichael 2.1 翻译:Prayer 校对:shanks,overtrue 本页包含内容: 常量和变量 声明常量和变量 类型标注 常量和变量的命名 输出常量和变量 注释 分号 整数 整数范围 Int UInt 浮点数 类型安全和类型推断 数值型字面量 数值型类型转换 整数转换 数整数和浮点数转换 类型别名 布尔值 元组 可选 nil if 语句以及强制解析 可选绑定 隐式解析可选类型 错误处理 断言 Swift 是一门开发 iOS, OS X 和 watchOS 应用的新语言。然而,如果你有 C 或者 Objective-C 开发经验的话,你会发现 Swift 的很多内容都是你熟悉的。 Swift 包含了 C 和 Objective-C 上所有基础数据类型,Int表示整型值;Double和Float表示浮点型值;Bool是布尔型值;String是文本型数据。Swift 还提供了三个基本的集合类型,Array,Set和Dictionary,详见集合类型。 就像 C 语言一样,Swift 使用变量来进行存储并通过变量名来关联值。在 Swift 中,广泛的使用着值不可变的变量,它们就是常量,而且比 C 语言的常量更强大。在 Swift

PHP define defined const

谁说胖子不能爱 提交于 2019-12-03 02:22:46
define 定义常量,常量一旦被定义,在脚本执行期间就不能再改变或者取消定义 常量默认大小写敏感。通常常量标识符总是大写的 与变量的区别: 1、常量前面没有美元符号($) 2、常量只能通过define()函数定义,而不能通过赋值语句 3、常量可以不用理会变量的作用域在任何地方定义和访问 4、常量一旦定义就不能重新定义或取消定义 5、常量的值只能是标量 6、定义时不能以数字开头 defined defined 用来检测常量有没有被定义,若常量存在,则返回 true,否则返回 false const const本身就是一个语言结构,而define是一个函数。 const在编译时要比define快很多。 1、const用于类成员变量的定义,一经定义,不可修改。Define不可以用于类成员变量的定义,可用于全局常量。 2、Const可在类中使用,define不能 3、Const不能再条件语句中定义常量 4、const采用普通的常量名称,define可以采用表达式作为名称 5、const只能接受静态的标量,而define可以采用任何表达式 6、const定义的常量时大小写敏感,而define可以通过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感。 constant 返回一个常量的值 Other 如果你要检查一个变量是否存在,请使用 isset()。 defined()

c++ 中 const 用法――

匿名 (未验证) 提交于 2019-12-03 00:22:01
为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下: 首先提示的是:在常变量( 常引用( )、常对象( 用法1:常量 用法2:指针和常量 char *const cp; //到char的const指针 char const *pc1; //到const char的指针 const char *pc2; //到const char的指针(后两个声明是等同的) 且注意:允许把非 const 对象的地址赋给指向 const 对象的指针,不允许把一个 const 对象的地址赋给一个普通的、非 const 对象的指针。 用法3:const修饰函数传入参数 void Fun( const A *in); //修饰指针型传入参数 void Fun(const A &in); //修饰引用型传入参数 用法4:修饰函数返回值 用法5:const修饰成员函数 (c++特性) const对象只能访问const成员函数,而非const对象可以访问任意的成员函数,包括const成员函数; const对象的成员是不能修改的,而通过指针维护的对象确实可以修改的; const成员函数不可以修改对象的数据,不管对象是否具有const性质

c语言中的枚举类型enum

匿名 (未验证) 提交于 2019-12-03 00:19:01
今天写c语言作业时,发现自己对enum了解的并不透彻,下面是完成后对enum的一些心得。 1.enum 常量(注意是常量) 实际是int类型。 只要能使用int类型的地方就可以使用枚举类型(enum)。 eg: printf ( "red= %d , orange= %d \n" ,red,orange); // 输出为red= 0 ,orange= 1 解释:red成为一个有名称的常量,代表整数0。 **标识符都是有名称的常量** 只要是能使用整型常量的地方就可以使用枚举常量。 2.默认值与赋值 默认类型中第一个枚举常量为0。 然而,也可以在枚举声明中为枚举常量指定整数值。如果没有对后边的枚举常量进行赋值,那么后面的常量就会被赋予后续的值(默认加1)。 如: enum levels {low = 100 , medium = 500 , high}; 那么low,medium,high的值分别为 100,500,501 3.枚举值不能直接输入\输出。 输入一般通过枚举常量(整数)转换,输出则一般通过switch语句以字符串方式进行。 eg: enum weekday{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday}; /*定义枚举类型 enum weekday*/ enum weekday d1,d2; /*

C++类型处理:typedef decltype

匿名 (未验证) 提交于 2019-12-02 23:48:02
类型别名是某种类型的同义词 有两种方法用于定义类型别名,传统方法是使用 typedef : typedef double wages; //wages是double的同义词 typedef wages base, *p //base是double的同义词,p是double*的同义词 新标准规定了一种新的方法,使用 别名声明 来定义类型别名: using SI = Sales_item; //SI是Sales_item的同义词 把等号左侧的名字规定成等号右侧类型的别名 类型别名和类型的名字等价,只要是类型的名字能出现的地方,就能使用类型别名 SI item; //等价于Sales_item item; typedef char *pstring; const pstring cstr = 0; //cstr是指向char的常量指针 const psrting *ps; //ps是指向“指向char的常量指针”的指针 我们可能错误的尝试替换成typedef前的样子: const char *cstr = 0; //这是const pstring cstr的错误理解 const pstring cstr表示cstr是指向char的 常量指针 ,而不是脑内“翻译”得到的const char *cstr(表示指向 常量char 的指针) auto 我们常常需要把表达式的值赋给变量

[C++]constexpr函数

匿名 (未验证) 提交于 2019-12-02 23:40:02
constexpr函数(constexpr function)是指能用于常量表达式的函数。定义constexpr函数的方法与其他函数类似,不过要遵循几项约定:函数的返回类型及所有形参的类型都得是字面值类型,而且 函数体中必须有且只有一条return语句 : constexpr int new_sz() {return 42;} constexpr int foo=new_sz();//正确,foo是一个常量表达式 我们把new_sz定义成无参数的constexpr函数。因为编译器能在程序编译时验证new_sz函数返回的是常量表达式,所以可以用new_sz函数初始化constexpr类型的变量foo。   执行该初始化任务时,编译器把对constexpr函数的调用替换成其结果值。为了能在编译过程中随时离开,constexpr函数被 隐式地指定为内联函数 。   constexpr函数体内也可以包含其他语句,只要这些语句在运行时不执行任何操作就行。例如,constexpr函数中可以有空语句,类型别名以及using声明。   我们允许constexpr函数的返回值并非一个常量: //如果arg是常量表达式,则scale(arg)也是常量表达式 constexpr size_t scale(size_t cnt) {return new_sz()*cnt;}

C++ const 和 constexpr 的用法和区别

匿名 (未验证) 提交于 2019-12-02 23:39:01
const 和 constexpr 用法 const用法 语义 const 是一个限定符 ,用 const 定义的变量被视为常量,const 对象一旦创建其值就不能再改变。除非用于定义类成员,否则 const 创建对象是必须初始化,否则无法通过编译。默认状态下,const 对象仅在文件内有效,当多个文件中出现同名的const常量时,其实等同于在不同文件中分别定义了独立的常量。如果需要在多个文件中使用同一个const常量,则需要对const变量不管是声明还是定义都添加extern 关键字,这样就只需要定义一次就可以了。 注:如果类内声明了一个const成员,则此成员必须用初始值列表的方式初始化。 const 引用 一般情况下,引用的类型必须与其所引用对象的类型一致,但是有两个例外。 1.基类的引用可以绑定到其派生类上面。(这里不做介绍) 2.初始化常量时引用时允许用任意表达式作为初始值,只要该表达式的结果能够转换成引用的类型即可。 常量的引用只能被绑定到常量上,否则无法通过编译。 double ic = 10.55; const int &cc = ic; //允许将int常量绑定到double上,此时实际上cc时绑定在一个未命名临时变量 (int)ic上 int &dc = ic; //无法将一个将int变量绑定到double上 const 指针 与引用一样