c/c++杂七杂八
文章平均质量分 65
fang92
这个作者很懒,什么都没留下…
展开
-
char *p 和char *p[]
char *p 和char *p[]区别转载 2014-11-02 22:58:02 · 699 阅读 · 0 评论 -
C++函数传值调用
C++的函数的参数调用是传值方式。想要改变传值调用,有引用和指针两种方式。其中,引用的实现机理也是通过一个指针,但是具体和指针传值的方式又不一样。具体见:C++中的指针与引用对于指针传值,其实实际上也是一个值传递,只是这个值是地址。所以在函数中改变*p的值,相应的调用函数的值也会改变。但是最近在做一点数据结构方面的东西,发现总是会出现以下错误。struct list{ int原创 2015-04-07 20:33:56 · 1226 阅读 · 0 评论 -
可变长参数函数
可变长参数函数的参数数量可变。如printf,scanf等函数都是可变长参数函数。 对C语言来说,实现可变长参数函数要用到三个宏:va_start(),va_end(),va_arg()和一个特殊类型va_list,他们被包含在stdarg.h中。 void va_start(va_list ap, T last):初始化函数 void va_end(va_list a原创 2015-05-13 18:37:24 · 1118 阅读 · 0 评论 -
控制台下的计算器——C++实现
最近这段时间看操作系统的东西看的头晕脑胀的,所以先停个一晚上,写个命令行式的计算器,来练练栈的使用。首先,分析一下要完成的东西。输入肯定使用string类来输入的,然后第一步,就是把string的字符串转化成数字存储起来。转化的这个数字存储是中序表达式,由于运算符有优先级的问题,中序表达式直接计算结果不好计算,所以需要把他转化成后序表达式,最后进行计算。主要的函数:(1)把string原创 2015-07-30 20:53:57 · 2070 阅读 · 1 评论 -
函数调用时程序堆栈的变化
这个主要写一点关于在C里面,堆栈是怎么保存数据的,以及调用函数时,堆栈指针的变化。首先说明两个寄存器1.rbp:栈帧指针,具体应该是指向当前函数栈的栈底,是不动的。实际的作用应该就是类似于一个基址,通过这个基址上栈中变量的寻址。2.rsp:栈顶指针。首先,写了一个比较简单的C程序:#includeint add_func(int arg1,int arg2){原创 2015-06-14 21:25:19 · 10459 阅读 · 2 评论