c/c++
文章平均质量分 74
机智的呆呆
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
总结对指针的一些看法~~~~
c/c++中的指针一般是指指针变量,它与普通的变量不同的是他能根据指针变量的类型通过*来重新解析指针变量的值,比如 :int i=3;int *p=&i;p=&i是给指针变量赋值,对于i编译器根据变量i的类型(int),在内存中划出了4个字节的空间&i~&i+3,以后对i的操作会映射到&i~&i+3这个字节中,比如i=4;编译器会根据编译时所获得类型信息,将4存储到&i~&i+3内存中原创 2008-11-03 22:22:00 · 1318 阅读 · 0 评论 -
深入探索c/c++函数(2)---普通成员函数调用的基本过程
c++的成员函数根据其调用的不同,大致可以分为4类:内联成员函数,静态成员函数,虚成员函数和上述3种以外的普通成员函数。从本质来说类成员函数和全局函数在调用上并没有差别,非内联函数的在调用时,基本上都包括如下的过程:函数的参数入栈,eip指针值入栈,然后跳到函数体的地址,执行函数体对应的代码,执行完毕调整栈帧。下面就按照上述4个分类进行分析,先来说一下普通的成员函数: 普通的成员函数在原创 2010-03-19 22:12:00 · 8832 阅读 · 9 评论 -
深入探索c/c++函数(3)---虚成员函数调用的基本过程
学过c++一段时间都会知道,c++是依靠虚函数实现多态的,如下代码:#include using namespace std;class Base{public: virtual void Print() { cout<<"^-^"<<endl; }};class Derive:public Base{public: virtual vo原创 2010-04-03 09:52:00 · 5326 阅读 · 2 评论 -
从一道笔试题来看指针的使用
不运行程序,问下面代码的输出是什么?1#include2 using namespace std;3 int main()4 {5 char *str[]={"welcome","to","Fortemedia","Nanjing"};6 char**p=str+1;7 str[0]=(*p++)+2;8 str[1]=*(p+1);9 str[2]原创 2009-04-30 19:24:00 · 4612 阅读 · 13 评论 -
深入探索c/c++函数(1)---全局函数调用的基本过程
在c/c++等许多程序设计语言中,可以将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,这就是程序中的函数,函数内封装了对数据和逻辑的处理。通过函数调用来执行函数体,下面根据代码进行分析。#include using namespace std;int test(int a,int b){ return a+b;}int main(int argc, char* argv[原创 2009-04-25 21:14:00 · 7259 阅读 · 5 评论 -
float和double变量的内存布局~~~~~~
浮点数在c/c++以及java中的内存布局遵循IEEE标准的,首先看一下IEEE所规定的存储的方式:符号位指数位小数部分指数偏移量单精度浮点数1 位[31]8位 [30-23]23位 [22-00]127双精度浮点数1 位[63]11 位[62-52]52 位[51-00]1023解释一下,首先float变量按原创 2008-12-20 19:58:00 · 11479 阅读 · 12 评论 -
系统栈的相关问题(2)---eip的修改
csdn曾见到如下代码:#include #include void HelloWorld(){ printf("Hello World!/n"); system("Pause"); exit(0);}int main(){ int arData[1] = {0}; arData[2] = (int)HelloW原创 2008-11-30 18:04:00 · 2100 阅读 · 0 评论 -
系统栈的相关问题(1)--栈的基本了解
#include using namespace std;void f1(int a,int b){}int main(){ f1(3,4); system("pause");}将上述代码反汇编如下(vs05debug): int main(){004113D0 push eb原创 2008-11-30 16:14:00 · 3700 阅读 · 0 评论
分享