两道64位栈溢出,思路和之前的32位溢出基本一致,所以放在一起 在这两道中体现的32位和64位的主要区别在于函数参数传递的方式 在32位程序运行中,函数参数直接压入栈中 调用函数时栈的结构为:调用函数地址->函数的返回地址->参数n->参数n-1->···->参数1 在64位程序运行中,参数传递需要 ...
分类:
编程语言 时间:
2017-12-01 16:41:58
阅读次数:
549
恢复内容开始 数组list 添加用.append(i,'xxx')方法 删除用.pop(i)方法,其中i为索引位置 数组可以直接作为元素插入数组 元组tuple(初始化后不能改变,所谓不变是指指向的位置不能变) tuple中定义一个元素的时候要加一个逗号用来区分数组与数据赋值 list和tuple是 ...
分类:
编程语言 时间:
2017-12-01 11:48:42
阅读次数:
208
1、a=a+2,表示一个新的对象,新的对象名字还是a,但是指向的内存地址已经变了 所以对于tuple对象(不可变对象),也是可以这样操作的 2、a+=2对于有些对象的操作是表示原来的对象,对有些对象的操作是生成了一个新对象 而list对象,可变对象,+=操作、append操作、extend操作,都是 ...
分类:
编程语言 时间:
2017-11-28 01:21:36
阅读次数:
234
目录: Python语言特性 1 Python的函数参数传递 2 Python中的元类(metaclass) 3 @staticmethod和@classmethod 4 类变量和实例变量 5 Python自省 6 字典推导式 7 Python中单下划线和双下划线 8 字符串格式化:\x和.form ...
分类:
编程语言 时间:
2017-11-25 13:10:32
阅读次数:
201
1. 列表和字典,直接赋值,都是浅拷贝,即赋值双方指向同一地址,因为 Python 对可变对象按引用传递。 2. 对非嵌套的列表,使用完全切片[:], 工厂函数 list(),或者 copy.copy() 都是深拷贝。 3. 对于非嵌套的字典,使用工厂函数 dict(),或者 copy.copy() ...
分类:
编程语言 时间:
2017-11-18 11:16:49
阅读次数:
142
```
#coding=utf-8 # dict
dict= {'bob': 40, 'andy': 30}
print dict['bob']
# 通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
print dict.get('Lisa',666)
#... ...
分类:
编程语言 时间:
2017-11-16 23:51:22
阅读次数:
163
类似于C++中函数参数的传递方式,java由于语言体系中不存在指针的概念,所以C++有3种参数传递方式;而java种只有两种。下面是我的一点体会: 分别为:引用类型传递和基本数据类型传递。引用传递本质上并没有新创建对象,而是声明了另一个引用来指向同一个对象。而基本数据类型的参数传递是值传递,在内存中 ...
分类:
编程语言 时间:
2017-11-16 21:57:52
阅读次数:
144
Linux应用 编程深入 语言编程标准C程序设计七 经典C11程序设计 以下内容为阅读: 《标准C程序设计》(第7版) 作者:E. Balagurusamy(印), 李周芳译 清华大学出版社 2017.7 《21天学通C语言》(第7版) 作者:Bradley Jones Peter Aitken D ...
分类:
其他好文 时间:
2017-11-14 18:37:35
阅读次数:
219
logging的使用 日志是我们排查问题的关键利器,写好日志记录,当我们发生问题时,可以快速定位代码范围进行修改。Python有给我们开发者们提供好的日志模块,我们我们就来介绍一下logging模块: 首先,我们先来看一个例子: import logging logging.debug("This ...
分类:
其他好文 时间:
2017-11-11 23:41:47
阅读次数:
190
String,StringBuilder与StringBuffer类的比较 一 可变与不可变 ① String类中使用字符数组保存字符串,如下就是,因为有"final"修饰符,所以可以知道string对象是不可变的。private final char value[]; String 为不可变对象, ...
分类:
其他好文 时间:
2017-11-10 21:40:14
阅读次数:
218