读书笔记1 : program paradigm

本文深入探讨了不同数据类型在内存中的占用情况,解析了指针与地址操作的关键概念,详细讲解了数组、结构体及类在内存中的布局,同时介绍了堆栈的实现原理以及常用内存操作函数如malloc, realloc, memcpy和memmove的使用。此外,文章还覆盖了汇编语言的基础知识和函数调用机制。

summary 1:

各个类型在内存中所占的byte
 char 1     short 2    int 4

关于  *   &的关键

*:   指针指向空间的值
&  取地址


 

画结构体图时从下往上画
结构体中的变量可以看成偏移量
数组,类 和结构体一样 ,因为他们都存在heap segment
数组
address of nth element =address_of_0th_element + (n * element_size_in_bytes)

generic type 里用void *
用(char *)强制转化,用于对偏移量进行导向

stack的实现
malloc 与 relloc 
memcpy 与 memmove
malloc 出来的空间在mem中的位置(heap segment)
stack segment 中的指令执行顺序:从上往下

汇编语言中, .2R表示R寄存器的低两位

函数中参数的次序:
int i=4;
foo(1,2);
在栈中的次序:
int
2
1

调用函数 sp=sp-n
返回时记得sp=sp+n

sp是用来指向存储数据的指针
pc是用来指向指令的指针

在 c++中swap(int &x,int &y)
swap(x,y);x,y可以为值类型

preprocessor 
#define max(a, b)    a>b?a:b
#ifndef
..................
#endif

segment failure :   null pointer
bus error:   dereference old address

 

转载于:https://www.cnblogs.com/ggppwx/archive/2010/05/02/1726000.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值