c++/c
文章平均质量分 76
L未若
难得糊涂!!!
展开
-
Windows程序内部运行原理
本文大部分内容都是摘自孙鑫老师,在下就是一个简单的总结,归纳,希望对大家有用!!!!Windows操作系统是一种完全不同于传统的dos方式的程序设计方法,是事件驱动的方式(主要是基于消息的,当用户需要完成某种功能时,会调用操作系统的某种支持,然后操作系统将用户的某种需要,包装成消息,并投递到消息队列中去,最后应用程序从消息队列中取走消息,并进行响应。)Windows应用程序,操作系统,计算机硬件之间原创 2016-10-18 19:58:27 · 4106 阅读 · 0 评论 -
C++多态性,虚函数,重载,抽象类
1,C++多态性,虚函数,重载,比较有意思,,,,,,在面向对象的程序中,当不同的对象接受到相同的消息产生不同的动作,这种性质称为多态性。原创 2016-07-21 14:55:17 · 2336 阅读 · 0 评论 -
C/C++中对象和变量的区别!!!
本文转载与:http://blog.csdn.net/yby4769250/article/details/7377526对象和变量这两个概念莫要搞乱,颈是颈,椎是椎,虽然两者都对应着一块内存,但是从不同的角度去理解内存就会产生不同的意义。变量:所谓变量就是一种定义,通过定义编译器将会开辟一段空间,并将这段内存空间和这个变量的名字捆绑在一起。从这个意思去理解,其实说白了:变转载 2016-07-31 11:38:05 · 3355 阅读 · 1 评论 -
C++的简单总结(复制构造函数,深拷贝,前拷贝,默认属性)
类的三大属性:private,public,protected1,对于类的成员变量或者函数,缺省即为私有#include using namespace std;class A{ int y; //私有成员 int x; //私有成员原创 2016-07-17 18:56:04 · 3940 阅读 · 0 评论 -
小解继承!!!(公有继承,私有继承,保护继承)
继承:是面向对象程序设计的一个重要机制,该机制自动地为一个类提供来自另一个类的操作和数据结构,这使得 程序员只需在新类中定义已有类中没有的成员来建立新类。也就是说:新类不但可以共享原有类的属性, 并且具有新的特性,这样就形成了类的层次。单继承和多继承:单继承:如果一个派生类只有一个基类原创 2016-07-15 13:13:45 · 1864 阅读 · 0 评论 -
malloc函数,大大的详解
1,关于malloc以及相关的几个函数 #include (Linux下) void *malloc(size_t size); void free(void *ptr); void *calloc(size_t nmemb, size_t size); void *realloc(void *ptr, size_t转载 2016-06-17 17:22:46 · 54143 阅读 · 5 评论 -
warning: format ‘%s’ expects argument of type ‘char *’和warning: backslash and newline separated by
关于程序中产生的警告:1,echoserv.c:49:2: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int’ [-Wformat=] printf("ip = %s\n", inet_ntoa(peeraddr.sin_addr)); ^2,echoserv.原创 2016-05-27 09:18:12 · 32760 阅读 · 3 评论 -
数组指针,函数指针的初步探阶
最近同学问了一道题,里面关于数组指针,函数指针,啊,啊,一时之间有点懵,这对于学了好长时间c的博主来说,是个打击啊,而且经常听人说,要想把C搞明白,(数组,指针,函数)重中之重,于是下定决心分析分析这些东西原创 2015-11-27 11:09:55 · 683 阅读 · 1 评论 -
详解移位运算符-二进制中1的个数
1,左移运算如果处理负数的时候是咋样的呢???会不会通过左移将一个负数变成正数???2,左移右移的时候,它的位数有的限制吗???可以无限大吗???3,详解二进制中的1的个数原创 2016-06-28 12:31:56 · 2932 阅读 · 1 评论 -
Linux下输入输出函数fgets,fputs函数,printf参数问题!!!
在研究socket通信时遇到了这个函数:客户端需要发送信息到服务端,客户端就通过fgets函数从标准输入输入字符,服务端在通过fputs将字符输出到标准输出fgets:#include char *fgets(char *s, int size, FILE *stream);fgets() reads in at most one less than size cha原创 2016-05-27 08:50:17 · 3750 阅读 · 0 评论 -
atoi()函数的实现
atoi()函数的功能:将字符串转换成整型数;atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回(返回转换后的整型数)。写atoi函数的时候需要注意一下几点1. 字符串前的空白2. 字符串所表示数值的正负号原创 2016-08-18 14:05:50 · 2987 阅读 · 0 评论 -
stl,vector, list,双向链表,map
下列关于stl的说法正确的是() A,map的迭代器的key是const类型,无法对其进行修改 B,list是双向链表实现,插入元素的复杂度是O(1) C,vector的大小会增大或者减少,但容量只会增大而不会减少 D,stl的排序算法一般比较传统的快速排序块是因为其选取中值的算法好原创 2016-09-13 13:05:50 · 4239 阅读 · 0 评论 -
auto,
C++11 autoauto可以在声明变量的时候根据变量初始值的类型自动为此变量选择匹配的类型.#include <iostream>#include <typeinfo>using namespace std;int main(){ int a = 10; auto au_a = a; cout<<typeid(au_a).name()<<en转载 2016-10-07 15:27:29 · 1392 阅读 · 0 评论 -
引用的超级起步
什么是引用引用是某一变量(对象)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法: 类型标识符 &引用名=目标变量名int a;int &ra = a;//定义引用ra,它是变量a的引用,即别名对引用的几点说明: 1:&在此不是求地址运算,而是起标识作用。 2:类型标识符是指目标变量的类型。 3:声明引用时,必须同时对其进行初始化。 4:引用声明完毕后,相原创 2016-10-05 22:51:10 · 782 阅读 · 0 评论 -
C++中的struct和class的区别
来自: http://hi.baidu.com/pengxiangbobin19890125/blog/item/b05586eee77300212df53411.htmlC++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。 struct能包含成员函数吗? 能! struct能继承吗? 能!! struct能实现多态吗转载 2016-10-04 14:24:08 · 799 阅读 · 0 评论 -
printf参数,little endian,初始化列表来初始化
1,假设在一个 32 位 little endian 的机器上运行下面的程序,结果是多少? 解析: 1,大端字节序:高位存储在低字节 小段字节序:低位存储在低字节 2,printf是一个库函数,C,C++中函数的参数是从右往左入栈的; 3,栈的生长方向是从高往低的 4,%d格式输出的是4个字节大小,而long long为8个字节 5,printf函数的原型是printf(c转载 2016-10-04 00:24:42 · 559 阅读 · 0 评论 -
关于const,函数的探究,面试
#include <iostream>using namespace std;class A{ public: void func() const { cout<<"a"<<endl;} void func() { cout<<"b"<<endl;}原创 2016-09-30 02:22:36 · 536 阅读 · 0 评论 -
C++ vector用法(详解!!函数,实现)
1,简述一下vector的基本操作,它的size,capacity(),clear,reverse,reserve, push_back等!!!2,说说,vector的存储特性,是顺序存储还是如同链表般,如果是顺序存储的话,那么是如何执行 erase,insert等函数,???(假如后面的空间不够的话,我们需要合理的算法来重新找出一块 相应的空间吗???拷贝,回收吗???是不原创 2016-09-30 01:13:40 · 280072 阅读 · 17 评论 -
简单说法
下列程序中输出的结果是()#include <stdio.h>int main(){ int i = 6; if( ((++i < 7) && (i++/6)) ||(++i <= 9)) ; printf("%d\n", i); return 0;}答案:8 解析: A && B 当A是0的时原创 2016-10-12 07:56:34 · 1666 阅读 · 0 评论 -
二叉树初解(度,确定型,二叉排序,平衡二叉)!!!
1,如何确定一颗二叉树(唯一)???2,二叉树度的问题(叶子节点与度为2的节点加1)???3,二叉排序树的插入,删除,简单理解4,平衡二叉树的构建过程,,,,原创 2016-07-20 10:57:14 · 2314 阅读 · 0 评论 -
一些C++的字符函数
1,去除字符的\r\n2,分割字符串3,转换长整数4,空格的检验原创 2016-09-05 08:05:21 · 424 阅读 · 0 评论 -
C++中类的大小
前面我们提到过C中的struct结构体的大小,什么内存对对齐,偏移量,然后Linux和Window下的还不一样,搞懂了上面的这些,那就明白了C++中的了吗??这里的结构体可是还有函数的,还有虚函数,友员函数,继承,多重继承,虚继承,等等一大堆东西,那这里面又是咋样的呢??1,class空类 C++的空类是指这个类不带任何数据,即类中没有非静态数据成员变量,没有虚函数,也没有虚基原创 2016-03-25 00:14:29 · 761 阅读 · 1 评论 -
网络字节序和主机字节序详解!!!
我们都知道,如今的通讯方式已经趋向与多样化,异构通信(计算机软件(操作系统) + 计算机硬件(内核架构,ARM,x86)不同)也已经很普遍了,如,手机和电脑中的qq进行通信,,,同时,在计算机设计之初,对内存中数据的处理也有不同的方式,(低位数据存储在低位地址处或者高位数据存储在低位地址处),然而,在通信的过程中(ISO/OSI模型和TCP/IP四层模型中),数据被一步步封装(然原创 2016-02-24 09:52:30 · 36022 阅读 · 8 评论 -
面试(必知必会)-sizeof()+strlen()函数浅析
strlen和sizeof是面试一定会问的,,当我们能将这些东西弄明白并且能举一反三的时候,那么面试官一定会刮目相看的,这一点毋庸置疑!!!char str[20]="0123456789";int a=strlen(str); /*a=10;strlen 计算字符串的长度,以\0'为字符串结char str[20]="0123456789"; int a=strlen(str); /*a=10;strlen 计算字符串的长度,以\0'为字符串结束标记。 int b=转载 2016-02-28 22:38:21 · 622 阅读 · 0 评论 -
面试-野指针,悬挂指针
首先说明一点:指向非法的内存地址(垃圾内存的地址),那么这个指针就是悬挂指针,也叫野指针,意为无法正常使用的指针。野指针(悬挂指针):野指针是指向不可用内存区域的指针(非法内存,垃圾内存)。野指针不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为if语句能够判断。但是野指针是很危险的,if不能判断一个指针是正常指针还是野指针。野指原创 2016-03-27 11:27:01 · 5491 阅读 · 2 评论 -
srand((unsigned int)time(NULL))引发的思考
这几天刷题碰到这句函数:srand((unsigned int)time(NULL))一看之下,有点印象,但就是说不清楚,挺气人的,就想着弄明白这个东西跟大家分享分享1,srand跟rand的关系:2,time函数的简单用法;3,参数执行的优先级原创 2016-02-21 13:36:53 · 32449 阅读 · 7 评论 -
time_t类型的定义
循着几个头文件在RedHat9的几个目录中找了半天、找到了time_t的定义。--------------------------------------------- #define __SLONGWORD_TYPE long int bits/typesizes.h> #define __TIME_T_TYPE __SLONGWORD_TYPE转载 2016-02-20 20:29:12 · 5546 阅读 · 0 评论 -
链表中删除节点引发的思考!!!
1,我们删除链表节点的时候,最常用的就是根据前趋节点,来改变指向,但是如果不用前趋节点,我们能删除吗??2,在链表中,删除节点的过程中,我们必须调用free函数吗??如果调用,它一定能正确的删除吗??如果不调用free 函数,那么它就一定不会删除吗??3,一个链表中,如果在输出具体存储的数据之前,我们用其他指针p指向某一个数据,然后我们在将指针p给free掉,会产生什么影响??如果我们f原创 2016-03-03 07:21:46 · 6645 阅读 · 5 评论 -
浮点数的内存存储!!!
C语言中,对于浮点型的数据采用单精度类型(float)和双精度类型(double)来存储:float 数据占用 32bit;double 数据占用 64bit;我们在声明一个变量 float f = 2.25f 的时候,是如何分配内存的呢?其实不论是 float 类型还是 double 类型,在存储方式上都是遵从IEEE的规范:float 遵从的转载 2016-03-26 11:11:22 · 1571 阅读 · 0 评论 -
C/C++中,优先级的那些事儿
大家首先看两个程序:1. while( c = ' ' || c == '\t' || c == '\n')2. if (flags & board != 0 )大家看完,什么感觉?我觉得应该好一部分人应该这样理解:第一个:不就是现将空格字符赋值给了变量c然后进行后面的(||)或运算,依次比较第二个:也不就是变量flags和变量board进行二进制的(&)&运算,产生结果跟0比较原创 2016-01-31 14:34:47 · 1025 阅读 · 0 评论 -
浅谈C++中的Const
大多数人一样,在刚开始学C++的时候定义常量的时候用的是Const,比较好奇(C++继承了好多C的东西,在C中,可以使用 #define PI 3.14159 用着还好,为什么产生了Const),哈哈,C++在变量声明使用限定符constConst用法主要是防止定义的对象再次被修改,定义对象变量是要初始化变量,简单地来讲,就是它把一个对象转化成了一个变量原创 2015-11-26 09:22:50 · 1039 阅读 · 1 评论 -
linux/window下的main函数详解(绝对经典,main的真正样子啊!!!)
学过c的朋友写一个简单地主函数,就只是跟main有关的,可能五花八门,不信啊,哈哈,不信你看,如:1. int main()2. int main(void)3. void main(void)4. main()但是,大家可曾知道main函数的真实面目啊,有人说:我知道,不就是 : int main(int argc, char * argv)原创 2016-01-30 11:09:01 · 3027 阅读 · 0 评论 -
Window下的dos环境下编译运行下运行c程序
本文主要转载(不全是)于:http://blog.sina.com.cn/s/blog_5e94b103010141oa.html(谢谢你了,沧海哥)文章里还有博主自己的愚见!!!博主也是在看到命令行参数(arg[1], arg[2])的时候,觉得一般的编译器都不能输入类似于命令行参数的命令,跟linux完全不一样(人家有自己的gcc,可以输入命令行参数),就想着dos底下应该也可以编译c程序的,一定的。首先写一个完好的C语言程序,可以运行的通,自然是简单就好,下面给出一个简单的示例转载 2016-01-30 07:15:32 · 13576 阅读 · 0 评论 -
for语句引起一个死循环而引发的思考!!!
对于一个简单地for语句,学过C的朋友可能觉得很简单,但是,看完下面这个看似简单程序还能想明白的朋友(实则并不简单),那才是真的不错,,好了,不废话了,大家看代码吧!!!#include #include int main(){ int i; int a[5]; for(i = 0; i <= 5; i++) a[i] = 0; printf("programming form原创 2016-01-26 02:27:56 · 9283 阅读 · 3 评论 -
c中定义变量的内存分配顺序问题(极易错!!!)
对于c语言中大家都知道所有的变量都必须是先定义后使用的,但是但是,对于好多人而言,基本上没有人来注意自己的编译器和操作系统对这个东西是如何处理的,1,如果全是一样的类型,比如全是int,编译器会如何分配呢??是从大到小还是从小到大,,2,如果是基本的混合类型呢, 它又是先给那个分配呢,是不管呢??还是考虑一下呢??3, 数组的分配方式和基本类型一样吗??编译器又是如何处理的??如果是混原创 2016-01-25 10:17:56 · 6854 阅读 · 6 评论 -
二维数组的传参问题!!!
本文转载于yunyun1886358(感谢!!):http://blog.csdn.net/yunyun1886358/article/details/5659851今天在论坛上有朋友提问:声明函数如下void function(int** pInt),意图是想参数传递一个二维数组。于是就定义了一个二维数组,比如 int[1][1],然后调用函数。结果如何?当然是失败了,编译器提示转载 2016-03-07 19:00:57 · 711 阅读 · 0 评论 -
关于全局变量,局部变量的一些看法!!!
1,全局变量,和局部变量的生存周期咋样呢,存储位置呢??2,假如全局变量和局部变量定义赋值都是一样的,那么printf函数里调用变量会出现什么结果??把局部变量去掉呢??3,对于一个c/c++程序而言,全局变量真的只是定义在所有函数之外就ok的吗??假如某一个全局变量定义在最底部,那么上面的那些程序可以用这些全局变量吗???下面大家一起看个程序:#include原创 2016-03-07 19:37:12 · 1125 阅读 · 0 评论 -
c/c++中内存分配
在任何程序设计环境及语言中,内存管理都十分重要。在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的。因此在程序设计中,有效地管理内存资源是程序员首先考虑的问题。第1节主要介绍内存管理基本概念,重点介绍C程序中内存的分配,以及C语言编译后的可执行程序的存储结构和运行结构,同时还介绍了堆空间和栈空间的用途及区别。第2节主要介绍C语言中内存分配及释放函数、函数的功能,以及如何调用这些转载 2016-02-21 17:30:42 · 2644 阅读 · 0 评论 -
简析类与对象,组合类,派生类的初始化过程
1, 类和对象如何区分??异同点呢??2, 什么是组合类,它的初始化过程呢??3, 私有成员变量可以被对象访问吗??4, 派生类呢??它的初始化原创 2016-03-07 16:07:58 · 2030 阅读 · 0 评论 -
面试重点-getchar,getch,scanf,gets,getche一群纠结的兄弟
今天偶然间碰到这么一个程序,小样,还挺有意思,不多说了,直接看吧!#include #include #include int main(){ struct node{ char name[10]; int score; }; struct node student; FILE *fptr; if((fptr = fopen("student.txt", "wb")) =原创 2015-11-19 04:13:53 · 1639 阅读 · 1 评论