08 2012 档案

摘要:已知String类定义如下:class String{public: String(const char *str = NULL); // 通用构造函数 String(const String &another); // 拷贝构造函数 ~ String(); // 析构函数 String & operater =(const String &rhs); // 赋值函数private: char *m_data; // 用于保存字符串};尝试写出类的成员函数实现。String::String(const char *str){ if ( str == NULL ... 阅读全文
posted @ 2012-08-30 20:03 一枚程序员 阅读(7207) 评论(1) 推荐(0) 编辑
摘要:已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc)其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数,请编写函数 strcpy。char *strcpy(char *strDest, const char *strSrc){ if ( strDest == NULL || strSrc == NULL) return NULL ; if ( strDest == strSrc) return strDest ; char *temp... 阅读全文
posted @ 2012-08-30 20:01 一枚程序员 阅读(16755) 评论(0) 推荐(1) 编辑
摘要:1、结构和联合都是由多个不同的数据类型成员组成, 但在任何同一时刻, 联合中只存放了一个被选中的成员(所有成员共用一块地址空间), 而结构的所有成员都存在(不同成员的存放地址不同)。2、对于联合的不同成员赋值, 将会对其它成员重写,原来成员的值就不存在了, 而对于结构的不同成员赋值是互不影响的。3、下面关于“联合”的题目的输出?#include <stdio.h>union{ int i; char x[2];}a;void main(){ a.x[0] = 10; a.x[1] = 1; printf("%d",a.i);}答案:266 (低位低地址,高位高地 阅读全文
posted @ 2012-08-30 19:45 一枚程序员 阅读(1105) 评论(0) 推荐(0) 编辑
摘要:1、什么是“引用”?声明和使用“引用”要注意哪些问题? 引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。不能建立数组的引用。2、将“引用”作为函数参数有哪些特点? (1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调函数中的实参. 阅读全文
posted @ 2012-08-30 19:29 一枚程序员 阅读(272) 评论(0) 推荐(0) 编辑
摘要:栈和堆究竟是什么,在内存中是如何分配的呢? 接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。 首先,来了解一下C语言的变量是如何在内存分部的。C语言有全局变量(Global)、本地变量(Local),静态变量(Static)、寄存器变量(Regeister)。每种变量都有不同的分配方式。先来看下面这段代码:#include <stdio.h> int g1=0, g2=0, g3=0; int main 阅读全文
posted @ 2012-08-28 15:37 一枚程序员 阅读(1446) 评论(0) 推荐(0) 编辑
摘要:非常经典的解释=_=堆和栈的区别一、预备知识:程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分: 1、栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap):一般有程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式类似于链表。。 3、全局区(静态区:static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。 4、文字常量区:常量字... 阅读全文
posted @ 2012-08-26 15:12 一枚程序员 阅读(341) 评论(0) 推荐(0) 编辑
摘要:第一种方法:a=a+b;b=a-b;a=a-b;第二种方法:解决方法:(a、b异或的结果 ,和a异或得b ,和b异或得a)a=a^b;b=a^b;a=a^b;异或运算法则:0^0=00^1=11^0=11^1=0写成宏替换的方法如下:#include "stdio.h"#define swap(a,b) (a)^=(b)^=(a)^=(b)int main(void){ int a,b; printf("请输入两个变量a和b:/n"); scanf("%d %d",&a,&b); printf("a和b交换前 阅读全文
posted @ 2012-08-26 10:01 一枚程序员 阅读(324) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示