
C/C++
绘夜
这个作者很懒,什么都没留下…
展开
-
C语言中的逻辑运算符:按位与,按位或,按位异或,取反,左右移位
c语言中存在6个位操作运算符,且它们只能用于整形操作数。 & 按位与 | 按位或 ^ 按位异或 >> 按位右移 ~ 按位取反1.按位与(AND)按位与的定义是:同一二进制位上的数字都是1的话,&的结果为1,否则为0.根据这个特性,&操作常常用来原创 2017-09-28 11:17:49 · 29896 阅读 · 2 评论 -
C语言和C++的区别
c语言虽说经常和c++在一起被大家提起,但可千万不要以为它们是一个东西。现在我们常用的C语言是C89标准,C++是C++99标准的。C89就是在1989年制定的标准,如今最新的是C11和C++11标准。根据不同的标准,它们的功能也会有所不同,但是越新的版本支持的编译器越少,所以本文在讨论的时候使用的C语言标准是C89,C++标准是C++99.我们来介绍C语言和C++中那些不同的地方。1.函数...原创 2018-08-02 00:12:28 · 291985 阅读 · 28 评论 -
C语言类型转换
有一道非常经典的问题,相信大家绝对都见过 :unsigned int a = 1;char b = -1;char c = a>b?'a':'b';cout << c <<endl;输出结果是b。原因也显而易见,a和b进行比较的时候当然要保持类型一致,这里把char类型转换成unsigned int类型。由于无符号整形中不存在负数,-1就被转换为一个很...原创 2018-08-01 12:58:19 · 651 阅读 · 0 评论 -
函数调用:栈帧的开辟与回退
一份源文件是由数据和指令组成的,函数通常作为指令和数据的集合被人们创造出来实现各种功能。就是这个我们天天在调用着的函数,你有没有想过:1.我们在调用它的时候系统做了什么?2.main函数中如果还有另一个函数,在跳转后运行完这个函数时,编译器怎么知道下一行执行哪个语句呢?会不会又从头执行了?3.函数在结束之后(运行到反花括号“}”处),系统又是怎么处理的?4.不同的语言对函数形参内存...原创 2018-07-25 23:57:54 · 1752 阅读 · 3 评论 -
编译和链接详解
在我们将源代码打好以后,检查无错,点下“编译并执行”按钮。控制台输出一行又一行,程序随即正常的运行起来。这是编码的日常。 那么你有没有想过,在这份代码变成一个可以跑起来的程序的过程中,它都经历了什么呢?有人说简单啊,不就是先编译再链接么。本文就详细的对编译链接的过程进行分析,里面或许真的有你不知道的东西呢。 我们先大体地概括一下:假设我们现在辛辛苦苦写好了一份代码,它的文件名叫做...原创 2018-07-24 10:22:42 · 5383 阅读 · 0 评论 -
C语言的预处理详解
说到预处理,大家绝对不会觉得陌生。因为我们在开始编写一份程序的时候,从键盘录入的第一句话:#include <stdio.h>这里就使用了预处理,引入头文件。同时在文件开头我们常见的#define ,#ifdef,#pragma之类的都属于预处理。 那么,我们在此先提出几个问题:1.预处理是C语言的一部分吗?2.包含#号的都是预处理吗?3.预处理指令后面是不...原创 2018-07-18 00:45:50 · 34332 阅读 · 7 评论 -
C语言中的32个关键字及部分讲解
说起c语言中的关键字,大家印象最深的可能就是int,double等定义一个数据变量时所使用的关键字了。但是除了这些数据类型的关键字还有哪些呢?for?while?没错,这些确实都是,但是并没有一个系统的总结。本文笔者就将就c语言学习中所遇到的共计32个关键字进行整理。请善用搜索功能。 首先是对关键字的罗列以及相应的简介:auto 声明自动变量 缺省...原创 2018-07-13 21:52:18 · 11126 阅读 · 3 评论 -
C++智能指针:auto_ptr详解
指针,相信大家并不陌生。无论是我们在进行查看内存还是在修改字符串,我们都会用到指针。最常见的情况则是我们使用malloc或者new申请到了一块内存,然后用一个指针来保存起来。我们都知道有内存的申请那就必须要对它进行释放的处理,否则会造成最严重的后果——内存泄漏。一个或者两个申请的内存我们或许不会忘记去释放,但是如果成千上万行代码,你还能记得住哪个释放了哪个没有释放吗?而智能指针就是为了解决...原创 2018-11-13 14:05:42 · 13269 阅读 · 4 评论