- 博客(120)
- 收藏
- 关注
转载 有关c/c++指针的金典问题
参考一:有关C/C++指针的经典面试题 C语言为何如此长寿并实用?C++为什么有那么多精彩?指针可以说是C/C++中的灵魂所在,虽然早期中pascal也有指针,但是和C/C++比起来不是一个级别的.今天为大家深入浅出的解析一下指针的有关笔试,面试题.所有题目来源网络,分析是我写的...0.预备知识,
2016-12-23 22:09:21
462
转载 c语言==expected identifier or * before *
用C语言,make编译器编写了一个结构体,然后想给里面的变量赋不同的初值,但是每次都会报错。检查了很多比如分号,括号,定义变量放在文件开头等等都还是错的 这个是程序 然后经别人提醒之后发现是头文件里面不可以定义只可以声明。
2016-12-22 21:02:31
4762
转载 C 结构体与共用体的用法
C 结构体与共用体的用法struct(结构体)C 语言允许用户建立有不同类型数据组成的组合型的数据结构,它成为结构体(structure)。建立自己的结构体结构体的声明struct 结构体名 {成员列表};结构体类型的名字是由一个关键字 struct 和结构体名组合而成的。结构体名是由用户指定,又称“结构体标记”(strcuture)。
2016-12-21 22:39:48
541
转载 Linux c==网络编程的理论知识-C/S和B/S架构和区别和选择
C/S和B/S架构和区别和选择区别: 硬件环境不同: C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务. B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行对安全要求不同 : C/S 一般面向相对固定的用户群,
2016-12-20 22:24:22
630
转载 面试试题
下面字符串定义错误的是( A ) A. char p[5] = “hello”; B. char p[] = “hello”; C. char p[] = {‘h’ , ’e’ , ’l’ , ’l’ , ’o’}; D. char *p = “hello”; 解析:字符串需要包括字符串结束标识符’\0’,”hello”算上\0之后是6个字符,超出了定义的范围大小。设cha
2016-12-19 22:02:36
721
转载 【Linux C】scanf和Linux C中的gets函数警告
在C语言中,字符数组的输入有两种方法: ①逐个字符输入 ②一次性输入整个字符串1.逐个字符输入 使用“%c”,例如: 2.一次性输入整个字符串 使用“%s”,例如: 需要注意的是,在这里定义的str数组的长度为10,则输入的字符串的长度应小于定义的长度10.若输入hello,则系统自动在输入的hello后面加一个’\0’
2016-12-18 21:14:11
636
转载 union和struct
联 合(union) 1. 联合说明和联合变量定义 联合也是一种新的数据类型, 它是一种特殊形式的变量。联合说明和联合变量定义与结构十分相似。其形式为: union 联合名{ 数据类型 成员名; 数据类型 成员名; ... } 联合变量名; 联合表示几个变量公用一个内存位置, 在不同的时间保存不同的数据类型 和不同长度的变量。下例表示
2016-12-17 23:30:37
235
转载 typedef 函数指针的用法
进入正文: 代码简化, 促进跨平台开发的目的. typedef 行为有点像 #define 宏,用其实际类型替代同义字。 不同点:typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换。用法一:typedef int (*MYFUN)(int, int); 这种用法一般用在给函数定义别名的时候上面的例
2016-12-16 21:17:20
282
转载 8位数据越界处理
8位有符号数的取值范围是-128~+127,为什么呢? 首先我们知道,计算机以补码的形式存储的,正数的补码是原码不变,负数的补码是原码的取反加1。 我们先来看+127,原码0111 1111对吧,若+128是多少呢,0111 1111 + 1 = 1000 0000 (原码),然后存储时,计算机一看是最高位为1,就保持符号位不变,后面7位取反加1,然后呢,进位舍弃,还是1000 0000(
2016-12-15 20:31:16
778
转载 子网掩码和网关的作用
子网掩码,网关的作用网关的作用:IP地址是以网络号和主机号来标示网络上的主机的,只有在一个网络号下的计算机之间才能”直接”互通,不同网络号的计算机要通过网关(Gateway)才能互通。子网掩码的作用:IP网络还允许划分成更小的网络,称为子网(Subnet),这样就产生了子网掩码。子网掩码的作用就是用来判断任意两个IP地址是否属于同一子网络,这时只有在同一子网的计算机才能”直接”互通。
2016-12-13 21:39:25
5011
转载 DNS的作用
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进
2016-12-12 22:28:15
3372
转载 c语言==测量各种数据类型的长度以及typedf关键字对数据类型的作用
32位处理器存储单位 bit (位) 字节 = 8 bit 半字 = 2 个字节 = 16 bit 字 = 4 个字节 = 32 bit 字节长度: 变量在内存中所占的存储空间的长度 数据类型 字节长度 char 1 short 2 int 4 long 4 float 4 double 8 指针 4 指针类型为什么是4个字节? 因为所有
2016-12-11 22:38:40
1886
转载 struct 成员的对齐方式
//用一个宏定义FIND求结构体struct s中某个成员变量member相对struct s的偏移量.//思考:若struct s的地址为0,则其成员member的地址就是其相对于s的偏移量//扩展: sizeof(struct s) 不一定等于 sizeof(struct s中的每一个成员)的和// 结构体大小不仅由成员的大小决定(sizeof(member)),而且还要
2016-12-10 22:17:31
251
转载 TCP和UDP的区别,如何选择使用
TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。UDP(User Datagram Protocol) UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。并且它是将应用程序发来的数据在收到的那一刻,立刻按照原样发送到网络上的一种机制。 即使是出现网络拥堵的情况下,UDP也无法进行流量控
2016-12-09 22:50:11
789
转载 GetMemory的典型例子
//NO.1: 程序首先申请一个char类型的指针str,并把str指向NULL(即str里存的是NULL的地址,*str为NULL中的值为0),调用函数的过程 中做了如下动作:1申请一个char 类型的指针p,2把str的内容copy到了p里(这是参数传递过程中系统所做的),3为p指针申请了100个空间,4返回Test函数.最后程序把字符 串hello world拷贝到str指向的内存空间里.到
2016-12-08 19:18:11
231
转载 静态库与动态库的区别
静态库与动态库的区别?静态库: 之所以称为【静态库】,是因为在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中。因此对应的链接方式称为静态链接。 (1)静态库对函数库的链接是放在编译时期完成的。程序在运行时与函数库再无瓜葛,移植方便。 (2)它比较浪费空间和资源,因为所有相关的目标文件与牵涉到的函数库被链接合成一个可执行文件。 (3)另一个问题是静态库
2016-12-07 22:43:38
391
转载 七层网络模型与四层网络模型以及每层网络协议
OSI七层网络模型第一层 物理层 第一层负责最后将信息编码成电流脉冲或其它信号用于网上传输。它由计算机和网络介质之间的实际界面组成,可定义电气信号、符号、线的状态和时钟要求、数据编码和数据传输用的连接器。如最常用的RS-232规范、10BASE-T的曼彻斯特编码以及RJ-45就属于第一层。所有比物理层高的层都通过事先定义好的接口而与它通话。如以太网的附属单元接口(AUI),一个DB
2016-12-06 22:44:45
3718
原创 I/O多路转接
服务器代码#include #include #include #include #include #include #include #include #include#include#include /* 宏定义端口号 */#define portnumber 8000 #define MAX_LINE 80
2016-12-05 11:06:29
333
原创 并发服务器
客户端程序#include #include #include #include #include #include #define PORT 3333#define MAX_SIZE 1024 int main(int argc, char *argv[]){ if(argc != 2) { print
2016-12-04 22:56:59
269
转载 测试题2
1、内存的分配方式的分配方式有几种?(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3)从堆上分配,亦称动态内存分配
2016-12-03 21:37:50
326
转载 C语言中,malloc和free深入理解
在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用—— 就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以写下这篇文章作为一个对知识的总结。这篇文章之所以命名中有个“浅谈”的字眼,也就是这个意思了!希望对大家有一点帮助!
2016-12-02 21:38:49
1027
1
转载 C++流程控制语句
while语句while ( 表达式) { 语句组1 }{语句组2}a=3;while(a a=a+5;cout当循环语句超过一条时,要用{ }将语句组组合在一起。 1.求 1+2+3+……+100void main(void){ int i=1,sum=0; //定义变量
2016-12-01 21:09:15
1185
原创 内存的分配方式, 进程和线程的区别, 进程间通信方式有哪些?各自有哪些优缺点?
内存的分配方式的分配方式有几种?1. 从静态存储区分配:此时的内存在程序编译的时候已经分配好,并且在程序的整个运行期间都存在。全局变量,static变量等在此存储。2. 在栈区分配:相关代码执行时创建,执行结束时被自动释放。局部变量在此存储。栈内存分配运算内置于处理器的指令集中,效率高,但容量有限。3. 在堆区分配:动态分配内存。用new/malloc时开辟,delete/free时释
2016-11-30 21:30:04
2798
转载 进程之间的通信的方式有哪些,他们之间的区别是什么!或者是忧缺点
linux上面的IPC大多都是从UNIX上面继承而来。 最初Unix IPC包括:管道、FIFO、信号。System V IPC包括:System V消息队列、System V信号灯、System V共享内存区。由于Unix版本的多样性,电子电气工程协会(IEEE)开发了一个独立的Unix标准,这个新的ANSI Unix标准被称为计算机环境的可移植性操作系统界面(PSOIX)。现有大部分Uni
2016-11-29 20:43:16
404
转载 测量各种数据类型的长度(包括指针),typedf关键字对数据类型的作用!
32位处理器存储单位 bit (位) 字节 = 8 bit 半字 = 2 个字节 = 16 bit 字 = 4 个字节 = 32 bit 字节长度: 变量在内存中所占的存储空间的长度 数据类型 字节长度 char 1
2016-11-28 22:28:49
317
转载 c++小知识点
1.在C++中,每个程序必须包含一个main()的入口函数,只有这样,这个项目才能运行.2.函数包括:函数名,参数,代码,返回值.3.return 是C++的预定义语句,提供了终止函数的一种方法;return 0表示成功执行正常退出. 4.using namespace std;是指引用C++的标准库.5. C++的4种基本数据类型:整数(int),浮点型(floa
2016-11-27 22:29:58
273
转载 C中数据类型数值范围解释
类型说明符 int 字节数 4 ; 数的范围 -2^31 -- 2^31 - 1;类型说明符 unsigned int 字节数 2 ; 数的范围 0 -- 2^16 - 1; (0 - 65535)类型说明符 short int
2016-11-26 21:39:08
354
转载 位操作训练
1、题目:请编写一个c函数,该函数给出一个字节中被置为1的位的个数#include int int2bin(int num){ int i; int count = 0; for( i = 0; i 8; i++) { if( num & 1 ==1) { count++; }
2016-11-24 22:45:26
256
转载 两个结构体之间的相互调用
指向结构体类型变量的使用 首先让我们定义结构体: struct stu { char name[20]; long number; float score[4]; } ; 再定义指向结构体类型变量的指针变量: struct stu *p1, *p2 ; 定义指针变量p 1、p 2,分别指向结构体类型变量。引用形式为:指针变量→成员; [例7-2] 对指向
2016-11-23 22:34:07
1687
转载 c++类继承
虚函数工作原理:给每个对象添加一个隐藏成员。隐藏成员中保存了一个指向函数地址数组的指针(虚函数表)。 虚函数表中存储了为类对象进行声明的虚函数的地址 无论类中包含的虚函数是1个还是10个,都只需要在对象中添加1个地址成员,只是表的大小不同而已。 调用函数时,程序将查看存储在对象中的虚函数地址,然后转向相应的函数地址表。 使用虚函数,在内存和执行速度方面的成本:每个对象都将增
2016-11-22 21:19:51
300
转载 C++类继承
2.其他类的方法 (1)构造函数 创建新对象,因此不能被继承。(2)析构函数 一定要定义显式析构函数来释放类构造函数使用new分配的所有内存,并完成类对象所需的任何特殊的清理工作。 对于基类,即使它不需要析构函数,也应提供。(3)转换 要将类转换为其他类型,应定义转换函数。 转换函数可以是没有参数的类成员函数,也可以是返回类型被声明为目标类型的类成员函数。(4)
2016-11-21 22:20:37
344
转载 C/C++ 输出宽字符 printf + %ls or wcout
在C/C++中输出宽字符可以使用printf + %ls 或者 wcout,详细请看代码:[cpp] view plain copy // 【MoreWindows工作笔记1】 C/C++ 输出宽字符 printf + %ls or wcout #include #include #include using n
2016-11-20 22:35:59
586
转载 Linux c==使用父子进程实现TCP通信
include include include include include include include include define MY_PORT 3333int main(int argc ,char **argv) { int listen_fd,accept_fd; struct sockaddr_in client_addr;
2016-11-19 18:17:45
534
转载 数组中只出现一次的数
首先看看题目要求:数组A中,除了某一个数字x之外,其他数字都出现了三次,而x出现了一次。请给出最快的方法找到x。 这个题目非常有意思,在本人博客中有《位操作基础篇之位操作全面总结》这篇文章介绍了使用位操作的异或来解决——数组中其他数字出现二次,而x出现一次,找出x。有《【白话经典算法系列之十二】数组中只出现1次的两个数字(百度面试题)》这边文章介绍了分组异或的方法来解决——数组中其他数
2016-11-18 21:57:18
208
转载 Linux C编程--sizeof面试题选
结构体和共用体的内存分配是C语言的一个难点,也是面试题中的热点。示例1: Union data1 { double d; int i; char c1; char c2[9]; };sizeof(union data1)的值为16.在编译器默认设置的情况下,该共用体最大基本类型为double,它占8字节,所以此共用体以8来对齐。字符数组c2占9个字节,那么整
2016-11-17 17:22:18
309
转载 常用汇编指令
1、 MOV(传送)指令写法:MOV target,source功能描述:将源操作数source的值复制到target中去,source值不变注意事项:1)target不能是CS(代码段寄存器),我的理解是代码段不可写,只可读,所以相应这地方也不能对CS执行复制操作。2)target和source不能同时为内存数、段寄存器(CS\DS\ES\SS\FS\GS)3)
2016-11-16 22:19:46
10919
转载 c++类继承
通过继承完成的工作:可以在已有类的基础上添加新功能; 可以给类添加数据; 可以修改类方法的行为。 例1:string类中有一个将const char *作为参数的构造函数,使得C-风格字符串初始化string类对象时,将自动调用这个构造函数,在头文件中包含string类即可。公有派生:派生类对象包含基类对象 使用公有派生,基类的私有成员将成为派生类的公有成员;基类的私有部分
2016-11-15 17:12:09
272
转载 linux下一些命令
1. Linux命令2. :20 跳转到20行3. :/abc 往后查找abc4. :?abc 往前查找abc5. 跳转到配对括号上: 光标移动到一个括号上,然后摁下%即可6. :!ls 调用外部命令7. –c : 编译或者汇编8. –E:预处理9. –S:编译10.
2016-11-14 22:32:20
189
转载 linux下软硬连接
1. 软链接:软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。软链接文件只是其源文件的一个标记,当删除了源文件后,链接文件不能独立存在,虽然仍保留文件名,但却不能查看软链接文件的内容了。软链接不直接使用inode号作为文件指针,而是使用文件路径名作为指针(软链接:文件名 + 数据部分-->目标文件的路径名)。软件有自己的inode,并
2016-11-13 22:38:40
219
转载 c_字节对齐
一、字节对齐基本概念 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存
2016-11-12 22:26:52
206
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人