知识杂记

1.栈: 在函数调用时,在大多数的C编译器中,参数是由右往左入栈的,然后是函数中的局部变量。注意静态变量是不入栈的。当本次函数调用结束后,局部变量先出栈,然后是参数,最后栈顶指针指向函数的返回地址,也就是主函数中的下一条指令的地址,程序由该点继续运行。

char s1[] = "123456";

char *s2 = "789654;

123456是在运行时刻赋值的,而789654是在编译时就确定的。但是,在以后的存取中,在栈上的数组比指针所指向的字符串(例如堆)快。

时间: 2024-10-05 16:54:02

知识杂记的相关文章

Android知识杂记

1.Toast.makeTest(contest,test,duration); contest:上下文,一般为当前窗口,this test:提示框内容,字符串型 duration:时常,值为1或0,1为显示2s,0为1s Android知识杂记,码迷,mamicode.com

Linux内核知识杂记

1.内核调试手段 1.printk打印内核状态 2.产生opps时使用GDB查看调用栈 2.内核空间和用户空间区别,通信方式有哪些? Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0-4G.Linux内核将这4G字节的空间分为两部分.将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为"内核空间".而将较低的3G字节(从虚拟地址 0x00000000到0xBFFFFFFF),供各个进程使用,称为&quo

Android知识杂记(四)

1.完整退出activity的设计思路 1.1 封装一个基础activity类 public abstract class RootActivity extends FragmentActivity{ 1.2 定义一个广播监听 private IntentFilter filter = new IntentFilter(FINISH_ACTION); private BroadcastReceiver receiver = new BroadcastReceiver() { @Override

ROP之linux_x64知识杂记

蒸米大神谈ROP:http://www.vuln.cn/6644 0x00  ROP ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术可以用来绕过现代操作系统的各种通用防御(比如内存不可执行和代码签名等). 0x01 linux_64与linux_86的区别 linux_64与linux_86的区别主要有两点:首先是内存地址的范围由32位变成了64位.但是可以使用的内存地址不能大于0x00007fffffffffff,否则会抛出异常

android知识杂记(二)

记录项目中的android零碎知识点,用以备忘. AsyncQueryHandler 继承与handler,可以用于处理增删改(ContentProvider提供的数据) 例如:query = new AsyncQueryHandler(getContentResolver());  包括方法:startQuery.startInsert.startDelete.startUpdate: Uri uri = Sms.CONVESATION_URI; query.startQuery(0, nul

android知识杂记(一)

记录项目中用的零碎知识点,用以备忘. activity启动状态android:screenOrientation:portrait 限制横屏 singleTop 只执行一次,通常用在欢迎页面 singleTask 堆栈之上的activity都会被销毁,通常用于首个activity MAIN && LAUNCHE android.intent.action.MAIN 决定哪个activity先启动 android.intent.category.LAUNCHER 决定哪是否显示在程序列表里

android知识杂记(三)

记录项目中的android零碎知识点,用以备忘. 1.android 自定义权限 app可以自定义属于自己的权限: <permission android:description="string resource" android:icon="drawable resource" android:label="string resource" android:name="string" android:permissio

php杂记——1(基础知识与文件读写)

1.变量前面需要加美元符号"$",常量则不需要: define('PRICE',100); echo PRICE; 2.用一个变量的值作为另一个变量的名称可以得到类似C中的指针变量: 1 $varname = 'tireqty'; 2 $$varname = 5; 3 //等价于下面这条语句 4 $tireqty = 5; 3.number_format()函数可用来格式化一个浮点数的输出精度: $pi = 3.1415926536; echo number_format($pi,2)

杂记(那些我还容易混淆的c和c++知识)

1: 定义一个对象时先调用基类的构造函数.然后调用派生类的构造函数:析构的时候恰好相反:先调用派生类的析构函数.然后调用基类的析构函数.2:  多态性具体体现在运行和编译两个方面:在程序运行时的多态性通过继承和虚函数来体现:在程序编译时多态性体现在函数和运算符的重载上:  3: y引用: 切记要对其进行初始化   不能再把该引用名作为其他变量名的别名   引用本身不占存储单元,系统也不给引用分配存储单元   不能建立数组的引用4:注意当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针.