- 博客(11)
- 收藏
- 关注
原创 sizeof 与strlen()区别
写这篇文章的意思是有纪念之意,当初面试遇到类似题目,虽简单,但涉及内存问题简化问题让我印象深刻15:11:34ji 2015/12/16 15:11:341.与strlen()比较strlen计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示(当然用在字符数组计
2015-12-16 15:12:38
295
原创 所谓顶层const与底层const
老实说经过这么多年读书有点读傻了,当然其中一部分是自己的原因,一部分是书籍的原因。我一直以为有些时候专业术语真是对人们的一种摧残,例如这种在C++primer第5版中定义是这样的 顶层const 表示指针本身是个常量,底层const表示的是指针所指向的对象时一个常量。如果脑子不清醒的人如我一下在就蒙了,这是什么鬼其实举一个例子一句话就解决,就是看const 的位置int
2015-12-16 15:08:29
725
原创 指针进阶之指针运算
当初博主在大学学指针的时候可谓是一头包,尤其后面学到二维指针,什么指针数组啊,指针字符串啊。什么的更是云里雾里。不明其中道理其中如果涉及到指针运算什么的更是痛不欲死。现简单的将我当时遇到的情况以及如何解决的过程思路分享出来指针及数组我们简单定义一个数组int array[5];array是数组名,array代表的是数组整块内存,即sizeof(array)= = 20假设s
2015-12-16 15:01:22
413
转载 指针部分疑点解释
从概念上来讲,指针其实是一种数据类型。我们从最简单的数据讲起;int i = 5;上面这句很简单,大家都知道,定义了一个整型变量a,并初始化其值为5。究其根本,我们看看系统做了什么——编译的时候系统向内存申请了2个字节(C的讲法,C++是4个字节)的空间,即16位,这两个字节是紧邻的,这只是第一步;第二步是在程序执行的时候,系统将整数常量5赋值给变量a,即将00000000000001
2015-12-16 14:35:46
295
转载 编程风格
编程风格虽然不会影响程序的功能,但会影响可读性。程序的版式追求清晰、美观,是程序风格的重要构成因素。1. 空行空行起着分隔程序段落的作用。空行得体(不能过多也不能过少)将使程序的布局更加清晰。空行不会浪费内存,虽然打印含有空行的程序是会多消耗一些纸张,但是值得。所以不要舍不得用空行。 ¯ 在每个类声明之后、每个函数定义结束之后都要加空行。例如:
2015-12-16 14:33:55
299
原创 windows下的几种通讯方式之TCP
网络客户端开发(TCP)#pragma comment(lib,Ws2_32.lib")#include #include using namespace stdvoid main(){coutSOCKET socket;struct sockaddr_in add;int servport = 5000;char buff[256];int len
2015-12-16 12:25:07
1243
转载 类的深拷贝与浅拷贝
拷贝构造函数是类中的一个特殊的成员函数,同时拷贝构造函数也是构造函数的一种,其函数名与类名相同,无返回类型,其作用也是为类的成员初始化以及为对象的构造分配存储空间,不同的是,拷贝构造函数的参数只有一个,且必须为该类对象的引用。 拷贝构造函数只有在使用一个对象初始化另外一个对象时才会使用,让我们从简单的说起:int a = 10;int b = a;co
2015-12-16 12:03:27
411
转载 堆和栈的区别
堆和栈是两个不用概念(转自百度知道,略有修改)一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分:1、栈区(stack)——由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)——一般由程序员分配释放,若程序员不释放,程序结束时可能由OS(Operating System)回收 。注意它与
2015-12-16 12:00:21
253
转载 成员函数的重载、覆盖与隐藏
成员函数的重载、覆盖与隐藏 成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。1.1 重载与覆盖 成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。 覆盖是指派生类函数覆盖基类函数,
2015-12-16 11:59:11
247
转载 浅析在对象中析构函数为何定义为虚函数
首先我们需要知道为什么基类的析构函数是虚函数:因为在实现多态时候,当基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生从而造成内存泄露之类的问题。在这一段的解释中,我们的关注点应该在1.基类操作派生类2.只析构基类下面有几个例子#include using namspace std;class Base{Base() {};~Base(){cout<<"
2015-10-21 16:25:16
353
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人