不知道你有没有想过,某种编程语言的第一个编译器是怎么来的呢?这不就是“鸡生蛋,蛋生鸡”的问题吗?先说最后的结论:任何一种语言的第一个编译器肯定是使用其他语言写出来的。以我们嵌入式开发中经常使用的C语言为例,我们来介绍一下第一个C语言编译器的来源。还是让我们回顾一下C语言历史:1970年Tomphson和Ritchie在BC
智能指针在 C++11 标准中被引入真正标准库(C++98 中引入的 auto_ptr 存在较多问题),但目前很多 C++开发者仍习惯用原生指针,视智能指针为洪水猛兽。但很多实际场景下,智能指针却是解决问题的神器,尤其是一些涉及多线程的场景下。本文将介绍智能指针可以解决的问题,用法及最佳实践。并且根据源码分析智能指针的实现原理
在C语言中,我们学习过:算数运算符(+、-、*、/、%)自增自减运算符(++、--)赋值运算符(=)关系运算符(>、< 、>=、<=、!=、==)逻辑运算符(&&、||、!)等等由于知识语法基本没有发生变化,本部分内容我们将重点用实际程序演示的方式进行例如拆分位数,我们可以C++如下实现:#include<iostream&
C++中的数据类型,常用的有int、char、float、double分别表示整形、字符型、单精度和双精度类型,包括它们的扩展类型与C语言中用法都一致,例如下面一段C++程序:#include<iostream>usingnamespacestd;intmain(){intnum;//学生学号&nbs
C++程序中程序的输入输出,除了完全兼容C的写法,即使用printf和scanf函数来实现以外,C++也有自己的一套输入输出流(这里提到的流是指从某种IO设备上读入或写出的字符序列,习惯称之为“流”。)C++中的输入输出流分别用cin和cout来表示,使用之前需要以来标准库iostream,即也要开头加一句#include<iostream>,下面
什么是命名空间?为什么要写using namespace std;这句话呢?这是C++新引入的一个机制,主要是为了解决多个模块间命名冲突的问题,就像现实生活中两个人重名一个道理。C++把相同的名字都放到不同的空间里,来防止名字的冲突例如标准C++库提供的对象都存放在std这个标准名字空中,比如cin、cout、endl,所以我们会看到在C++程序
与学习C语言一样,开头一定先给大家介绍一下C++,看看第一个简单的C++程序到底长什么样子,初步了解C++,请看如下代码://学到牛牛.cpp//文本输入程序#include<iostream>//允许程序输入输出usingnamespacest
学习C++前默认大家已经具备C语言的基础,如果还没有学过C语言,建议大家先学习C语言C++语言是在C语言基础之上为支持面向对象而设计的这么一套程序语言,而面向对象在C++中的体现就是类的机制,所以C++也称作是“带类的C语言的”。那么什么是类?我们不妨先从C语言的结构体说起,相信大家还有印象。比如C语言代码struct 
以作者自己的经验来看,即便您将来不打算从事C++方向的开发,也建议没有编程基础的同学先从C语言开始学习,掌握C语言及面向过程的编程思想,接着再学习具有一脉相承的C++语言,不仅可以科学的学习两门计算机届最主流的开发语言,更可以体会到软件开发思想发展的变化,起到到触类旁通的效果。1、如果你有编程语言经验,学习C
对于所有语言而言,运算符大多数都类似,Java作为一门强类型语言,运算符号在计算上相比,会有点差别。我们可以把运算符分成以下几组:算术运算符关系运算符位运算符逻辑运算符赋值运算符其他运算符下面的简单示例程序演示了算术运算符。复制并粘贴下面的 Java 程序并保存为 Test.java 文件,然后编译并运行这个程序:publi