赋值语句

c/c++——基本概念

跟風遠走 提交于 2019-12-05 01:01:16
内存 栈区和堆区的管理模式有所不同:栈区内存由系统分配和释放,不受程序员控制;堆区内存完全由程序员掌控,想分配多少就分配多少,想什么时候释放就什么时候释放,非常灵活。 栈(Stack)可以存放函数参数、局部变量、局部数组等作用范围在函数内部的数据,它的用途就是完成函数的调用。 栈区和堆区的内存在程序运行期间可以根据实际需求来分配和释放,不用在程序刚启动时就备足所有内存。这称为动态内存分配。 在栈上创建出来的对象都有一个名字,比如 stu,使用指针指向它不是必须的。但是通过 new 创建出来的对象就不一样了,它在堆上分配内存,没有名字,只能得到一个指向它的指针,所以必须使用一个指针变量来接收这个指针,否则以后再也无法找到这个对象了,更没有办法使用它。也就是说,使用 new 在堆上创建出来的对象是匿名的,没法直接使用,必须要用一个指针指向它,再借助指针来访问它的成员变量或成员函数。 栈内存是程序自动管理的,不能使用 delete 删除在栈上创建的对象;堆内存由程序员管理,对象使用完毕后可以通过 delete 删除。在实际开发中,new 和 delete 往往成对出现,以保证及时删除不再使用的对象,防止无用内存堆积。 有了对象指针后,可以通过箭头 -> 来访问对象的成员变量和成员函数,这和通过 结构体指针 来访问它的成员类似。 成员变量在堆区或栈区分配内存,成员函数在代码区分配内存

golang中 = 和 :=区别

北城余情 提交于 2019-12-04 23:18:15
[color=red][b]= 是赋值语句 :=是声明类型(编译器帮你做的)并赋值。[/b][/color] 1、=要和var 关键字一起使用。var可以在函数中使用,也可以在函数外使用。 :=只能在函数中使用,所以只能定义局部变量。 2、用var定义之后,用=赋值之后,还可以改变。但是用:=定义的变量不能改变值(也就是b:="q",在函数中不能再重新这样定义 b:="s",但是可以b="s") 3、var和=可以平行定义并赋值: 例如: var p, q float32 = 1.1, 2.2 :=也可以这样做: b, f := "q", 1 来源: CSDN 作者: studypi 链接: https://blog.csdn.net/studypi/article/details/84908228

C语言博客作业04--数组

落爺英雄遲暮 提交于 2019-12-04 19:01:56
0.展示PTA总分 0.1.一维数组 0.2.二维数组 0.3.字符数组 1.本章学习总结 1.1 学习内容总结 数组查找数据 . 遍历数组,用if语句判断数组中的数是否与寻找的数字相等。 灵活使用flag,判断有无需要查找的数组。 定义数组变量a[10]用来储存输入10个之内的数字 定义变量x用来储存需要寻找的数字 定义变量flag=0用来判断有无需要寻找的数字 for int i=0 to 10 do i++ if(a[i]==x) then flag=1 //找到x,flag重新赋值用以输出找没找到 break //找到X,就跳出循环,减少运行时间 end if end for if(flag==1) then 输出“找到了” else //flag初始化为0,如果if条件不满足不会进入下面的语句,flag的值一直为0 输出“没找到” end if 数组插入数据 . 该题的前提是有序数组(从大到小或者是从小到大),首先找到插入的位置,因为是遍历数组,只要判断插入的数字大于(或者小于)数组中的数字即可,找到插入的位置后,break结束循环。 将数组从最后一个数字开始往后挪(不能从插入位置开始往后挪,因为把每个数字往后移一个后,原来该位置上的数字就会被顶替掉,数据会丢失)。 再将X赋值给插入的位置。 定义数组变量Num[n]用来储存输入的有序数列 定义变量X用来储存插入的数字

C语言博客作业04--数组

无人久伴 提交于 2019-12-04 18:50:25
0.展示PTA总分 1.本章学习总结 1.1 学习内容总结 1.1.1一维数组 ①一维数组的定义格式:类型名 数组名 [数组长度]; ②一维数组的引用形式:数组名 [下标] ③下标的取值范围:[0,数组长度-1] ④只能引用单个的数组元素,不能一次引用整个数组 ⑤引用数组元素时,方括号内是表达式,代表下标,也可以是变量,而定义数组时方括号内是常量表达式,可以包括常量和符号常量,但不能包含变量 ⑥对数组元素赋初值格式:类型名 数组名 [数组长度] = {初值表}; 可对全部元素赋值,如 int a[10] = { 1,2,3,4,5,6,7,8,9,10 }; 也可对部分元素赋值,如 int b[20] = {0,1};//表示对b数组的前两个元素赋初值 ⑦静态储存的数组如果没有初始化,系统将自动给所有元素赋0 1.1.2二维数组 ①数组的定义格式:类型名 数组名 [行长度][列长度]; ②二维数组的引用形式:数组名 [行长度][列长度] ③二维数组先存放第0行的元素,再存放第1行的元素...每一行元素再按照列的顺序的存放 ③二维数组的分行式赋初值格式:类型名 数组名 [行长度] [列长度] = {{初值表0},...,{初值表k},...}; 可对全部元素赋值,如 int a[2][3] = { {1,2,3},{4,5,6},{7,8,9} }; 也可对部分元素赋值,如 int

Go语言基础之运算符

北慕城南 提交于 2019-12-04 17:37:31
运算符 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 算数运算符 运算符 描述 + 相加 - 相减 * 相乘 / 相除 % 求余 注意: ++ (自增)和 -- (自减)在Go语言中是单独的语句,并不是运算符。 关系运算符 运算符 描述 == 检查两个值是否相等,如果相等返回 True 否则返回 False。 != 检查两个值是否不相等,如果不相等返回 True 否则返回 False。 > 检查左边值是否大于右边值,如果是返回 True 否则返回 False。 >= 检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。 < 检查左边值是否小于右边值,如果是返回 True 否则返回 False。 <= 检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。 逻辑运算符 运算符 描述 && 逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。 || 逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。 ! 逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True。 位运算符 位运算符对整数在内存中的二进制位进行操作。 运算符 描述 & 参与运算的两数各对应的二进位相与。 (两位均为1才为1) |

Python笔记4

主宰稳场 提交于 2019-12-04 17:37:30
JSON: JavaScript Object Notation, JavaScript 对象标记 JSON 本质:是一种轻量级的数据交换格式 1. 轻量级 是 和 XML作比较 2. 数据交换格式 :JSON 是一种数据交换格式, 它的载体是字符串(字符串是JSON的表现形式。) Ps. JSON 对象 和 JSON 字符串的区别 符合JSON格式的字符串叫做JSON字符串, i.e { "name":"John"} Ps. JSON VS XML , JSON 在互联网领域更受欢迎。 JSON优势:易于阅读、解析,网络传输效率高,是一种跨语言交换数据(XML也是跨语言的) 反序列化 json_str='{"name":"小气","age":18}' #JSON 字符串 json_array='[{"name":"小气","age":18},{"name":"小气","age":18}]'#JSON数组 里面 是双引号的话,外面必须是单引号 JSON格式的字符串键值必须是双引号 数字可以不加双引号 json字符串loads,转换成dict字典;jsonarray数组loads,转换成列表 JSON字符串到某种语言的解析过程叫反序列化 MongoDB是nosql数据库的代表,比较适合存储序列化后的数据 反序列化是将 JSON数据类型转化成python数据类型 关键在于

defer

穿精又带淫゛_ 提交于 2019-12-04 17:02:57
在Go语言的函数中 return 语句在底层并不是原子操作,它分为给返回值赋值和RET指令两步。而 defer 语句执行的时机就在返回值赋值操作后,RET指令执行前。具体如下图所示: 在defer函数定义时,对外部变量的引用是有两种方式的,分别是作为函数参数和作为闭包引用。作为函数参数,则在defer定义时就把值传递给defer,并被cache起来;作为闭包引用的话,则会在defer函数真正调用时根据整个上下文确定当前的值。 请看下面一个例子: func f5() (x int) { aa := func(){ fmt.Println(x, "b") } defer fmt.Println(x, "a") defer aa() defer fmt.Println(x,"c") return 5 } func main(){ fmt.Println(f5()) } 执行结果: 0 c 5 b 0 a 5 解释: fmt.Println(x, "a") 一个普普通通的函数调用,在底层究竟做了什么事情 不考虑本次的例子,假如代码如下: x:=4 fmt.Println(x, "a") 当程序执行到fmt.Println(x, "a"),首先在内存中开辟一个空间,可以叫做函数的运行空间,这个运行空间内存放局部变量,等一些东西。 注意,函数体内的x并不是外层的变量x

(1)Python基础

末鹿安然 提交于 2019-12-04 11:06:42
目录 前言 1、编译型语言和解释型语言对比: 2、 程序执行原理 : 3、Python 特点:是完全面向对象的语言 优点:简单、易学;免费、开源, 面向对象 ,丰富的库,可扩展性。。。 面向对象的思维方式: 4、 Python 2.x 与 3.x 版本简介: 一、认识 1、执行 Python 程序的三种方式:解释器,交互式,集成开发环境 2、认识错误(BUG) 单词列表 3、 (1)新建项目,命名 (2)多文件项目的演练 4、注释 (1)单行注释(行注释): (2) 多行注释(块注释):""" 5、关于代码规范 二、4种运算符,变量,input输入和输出 1、运算符 (2)逻辑运算: 与 and / 或 or / 非 not 三种。 (3)比较(关系)运算符: (4)赋值运算符: (1)算数运算符 * 运算符还可以用于字符串 2、 运算符的优先级 : 3、变量, (1)标识符和关键字 标识符: 关键字: (2)变量的命名规则: 字母 、 下划线 和 数字 组成,不能以数字开头; (2)变量定义: = ,变量名 = 值 解释变量含义: (3)常量: (4)变量的类型: (a)数据类型可以分为 数字型 和 非数字型 : (b) 不同类型变量之间的计算 :true是1,false是0,字符串用+连接, 4、变量的输入和输出:使用 input 函数 input 函数实现键盘输入:字符串变量

es6入门

一世执手 提交于 2019-12-04 09:41:11
1.什么是es6 ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。 es6入门文档: http://caibaojian.com/es6/ 2.node中使用es6 Babel 是一个广泛使用的ES6转码器,可以将ES6代码转为ES5代码,从而在现有环境执行。 2.1配置文件 .babelrc Babel的配置文件是 .babelrc ,存放在项目的根目录下。使用Babel的第一步,就是配置这个文件。该文件用来设置转码规则和插件,基本格式如下: { "presets": [], "plugins": [] } 2.2安装es6转换模块 presets 字段设定转码规则,官方提供以下的规则集,你可以根据需要安装。 // ES2015转码规则 $ npm install --save-dev babel-preset-es2015 // react转码规则 $ npm install --save-dev babel-preset-react // ES7不同阶段语法提案的转码规则(共有4个阶段),选装一个 $ npm install

Django之ORM表间操作

可紊 提交于 2019-12-04 08:07:03
Django之ORM表间操作 之前完成了简单的数据库数据增加操作。这次学习更多的表间操作。 单表操作 增加 方式一 b = Book(title="Python基础", publication_date="2019-10-15", price=20) b.save() 这是我们之前增加数据的方式,是用实例化对象的方式来添加数据的,这是添加数据的一种方式,接下来,我们看看其他的添加数据的方式。 方式二 Book.objects.create(title="Python基础", publication_date="2019-10-15", price=20) 这种方式来添加数据,不需要创建变量来接收和使用save()保存就会直接将数据添加到数据库。 删除 方式一 b = Book.objects.get(title="Python基础") b.delete() 方式二 Book.objects.filter(title="Python基础").delete() 修改 方式一 book = Book.objects.get(name="天龙八部") book.name = "天龙八部2" book.save() 方式二 Book.objects.filter(name="天龙八部2").update(name="天龙八部") # 注意不能用get取值 这里注意,使用get取到的是一个对象