自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 C++面试题

1、局部变量能否和全局变量重名?           答:能,局部会屏蔽全局。要用全局变量,需要使用 ":: "   局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。   2、如何引用一个已经

2017-08-06 23:23:15 136

转载 常见算法的时间空间复杂度,转载大神的,就当是笔记

常用的排序算法的时间复杂度和空间复杂度排序法最差时间分析平均时间复杂度稳定度空间复杂度冒泡排序O(n2)O(n2)稳定O(1)快速排序O(n2)O(n*log2n)不稳定O(log2n)~O(n)选择排序O(n2)O(n2)稳定O(1)二叉树排序O(n

2017-08-06 22:55:55 302

原创 命名空间的类的对象

创建命名空间的类的对象需要用到域解析符nsA::myClass ca;  //声明一个nsA中类myclass的实例caca.print();  //调用类实例ca中的print(),输出结果nsB::myClass cb;   //声明一个nsB中类myClass的实例cbcb.print(); //调用类实例cb中的print(),输出结果

2017-08-05 23:59:16 313

转载 设计并发服务器,使用多进程与多线程有什么区别?

网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?答案一:1,进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。2,线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。两者都可以提高程序的并发度,提高程序运行效率和响应时间。线程和进程在使用上各有优缺点:线程执行开销小

2017-08-02 15:55:13 1817

原创 单链表的用法

个人在学习中的理解,可能有错误,请不吝指教链表就是很多结点 通过 指针 串链 起来  链表的结构: 每个表 是个结构体,结构体包括数据域和指针域,一个结构体称为结点,每个结点的指针域指向下一级,最后一个个结点的指针域为NULL。typedef struct node{ data;node* next}node  typedef Node *PNode  重命名结点指针类型链

2017-07-08 13:14:03 212

原创 c++虚函数表

C++中的虚函数的实现一般是通过虚函数表(C++规范并没有规定具体用哪种方法,但大部分的 编译器厂商都选择此方法)。类的虚函数表是一块连续的内存,每个 内存单元中记录一个JMP指令的地址。注意的是, 编译器会为每个有虚函数的类创建一个虚函数表,该虚函数表将被该类的所有对象共享。类的每个虚成员占据虚函数表中的一行。如果类中有N个虚函数,那么其虚函数表将有N*4字节的大小。虚函

2017-01-23 19:38:45 150

原创 .纯虚函数和抽象类

.纯虚函数和抽象类   语法格式   virtual 返回值类型 函数名(参数) = 0;      1) 纯虚函数没有函数体,之有 声明;     =0.只表示是纯虚函数,   2) =0 不表示返回值是0,只是一个形式,告诉编译器这是纯虚函数   3)包含纯虚函数的类称为抽象类;   4)抽象类通常称为基类,让派生类去实现纯虚函数。     派生类必须实现纯

2017-01-22 20:28:24 209

原创 c++中各种模式的用法

C++中各种输入模式的用法(怎样输入空格)1、cin1、cin.get()2、cin.getline()3、getline()4、gets()5、getchar()1、cin>>用法1:最基本,也是最常用的用法,输入一个数字:#include using namespace std;ma

2017-01-19 20:57:37 187

原创 】编写void put(int n)函数时,注意考虑数组满的情况

#include using namespace std;class ListArray{private:int size;int elem;int *p;public:ListArray (int s = 100);void put (int n);void print ();~ListArray();};Lis

2017-01-19 09:51:09 787

原创 gets和scanf输入字符串的比较

scanf( )函数和gets( )函数都可用于输入字符串,但在功能上有区别。若想从键盘上输入字符串"hi hello",则应该使用__gets__函数。gets可以接收空格;而scanf遇到空格、回车和Tab键都会认为输入结束,所有它不能接收空格。char string[15]; gets(string); /*遇到回车认为输入结束*/scanf("%s",string)

2017-01-14 18:35:58 369

转载 makefile用法及作用

一、Makefile里有什么?Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。2、隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写Makefile,这是由m

2016-12-20 21:58:01 486

原创 pid_t的类型定义

这个类型定义实际上就是int型。但是在linux下的c中的头文件中这个定义到底是怎么定义的呢?今天就把以前找这个定义的过程贴出来:在文件/usr/include/bits/types.h中我们终于找到了这样的定义:#define    __S32_TYPE        int由此我们终于找到了pid_t的真实定义:实际他就是  int  类型的。

2016-12-19 21:58:01 354

原创 cpu进行操作的都是地址 *号在c语言中的作用

CPU 访问内存时需要的是地址,而不是变量名和函数名!变量名和函数名只是地址的一种助记符,当源文件被编译和链接成可执行程序后,它们都会被替换成地址。编译和链接过程的一项重要任务就是找到这些名称所对应的地址。假设变量 a、b、c 在内存中的地址分别是 0X1000、0X2000、0X3000,那么加法运算c = a + b;将会被转换成类似下面的形式: 0X3000 = (0X1000) +

2016-11-28 22:25:13 288

原创 关于循环注意的细节

1.在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数2.建议for语句的循环控制变量的取值采用"半开半闭区间"写法。半开半闭区间写法和闭区间写法虽然功能相同,但相比之下,半开半闭区间写法更加直观。二者对比如下:半开半闭区间写法:3.不能在for循环体内修改循环变量,防止循环失控4.循环要尽可能短,要使代码清晰,一目了然。

2016-11-25 22:46:30 283

原创 scanf时\n与不\n

scanf中,除了 %指定的数据,其他字符需要原样输入scanf("%d%d\n",&n,&m), 意思就是先输入两个整数,再输入一个'\n',但是在正常输入的时候, 回车被当作输入结束的标记,并没有被scanf收到,于是scanf认为输入数据不全,继续等待.当再次输入其他字符, scanf检测到输入的字符和'\n'不匹配,于是返回.其实你不需要再输入两个数字,只要再输

2016-11-24 22:12:20 530

原创 冒泡排序和选择排序自我总结:GCC 编译报错:程序中有游离的 \357’ \273’ \277

冒泡排序和选择排序简析:冒泡排序是两两交换位置,将较大数字一步一步放在最后。从左到右依次比较交换,然后循环这个步骤。选择排序是先进行比较找出最小数,标记出最小数的位置,然后最小数和第一个数字交换位置。先进行比较,再交换, 然后循环这个过程。冒泡排序  for(i=0;i     for(j=0;j       {         if a[j]>a[j+1];

2016-11-22 22:55:08 334

原创 2016 11 .21学习小记

if,else if都需要接判断表达式。else不需要判断表达式。   使用else if和else,必须紧跟在if之后,形参if-esle if组或if-else对。 没有对应的if语句,else if和else语句都会在编译时报错。用printf语句输出数组内的数字是 直接a[i]就可以 不需要取地址 因为a[i]本来就是指向地址

2016-11-21 23:26:39 138

原创 双引号和点括号区别

预处理器发现 #include 指令后,就会寻找后跟的文件名并把这个文件的内容包含到当前文件中。被包含文件中的文本将替换源代码文件中的#include指令,就像你把被包含文件中的全部内容键入到源文件中的这个位置一样。 #include 指令有两种使用形式 #include stdio.h> 文件名放在尖括号中 #include “mystuff.h” 文件名放在双引号中 

2016-11-18 23:13:46 1186

原创 2016 .11.16

记得if 完了加fi case 结束后加esac#$取值要加空格重定向 如何看 1)command >file 2>file2)command >file 2>&1 then 不能跟在if 后面 否则会出错

2016-11-16 22:50:38 152

原创 第三篇

echo “”双引号 ,除$、转义符\、倒引号`这三个保留特殊功能,其他字符均做普通字符。 单引号 被引起的字符全部做普通字符,即全部原样 倒引号 取值$# ——传送给shell程序的位置参数的数量$? ——最后命令的完成码或者在shell程序内部执行的shell程序(返回值)$0 ——shell程序的名称$* ——调用shell程序时所传送的全部参数的单字符串, “参数1

2016-11-15 23:09:41 128

原创 New Start 学习记录 1

1.shell中   如果指定目录错误  那么创建的文件或者目录 保存在当前目录2 shell是什么 一系列经常使用的Linux命令,你可以把他们存储在一个文件中。Shell可以读取这个文件并执行其中的命令。这样的文件被称为脚本文件3.1编写文件 抬头#!/bin/bash  2  +权限 3 执行 sh .sh 或者 ./.sh4

2016-11-14 22:35:13 159

原创 linux基础

1.开关机 init 0  关机 init6 重启;2.系统结构       硬件                      内核  应该是内部处理计算的相关东西          作  pwd 查看当前目录more/less 文件:查看文件内容cat 显示所指文件的内容mv(move) 剪切文件mv [参数] 源文件 目标文件 cp(copy) 拷贝文件cp [参数] 源文件 目

2016-11-09 22:34:15 111

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除