C++学习笔记第一天:基础
前言
N年前学的C,经过VB、JAVA、JS、C#等后辈的轮番蹂躏,当初学的那点儿东西早就还给老师了
现在有了在桌面端实现 Native + Web 的初衷,需要利用CEF开源组件来封装这个Native
所以,还是要对C++有个基本的认识,否则连Debug都找不到入口
开始
首先,菜鸟教程走起:http://www.runoob.com/cplusplus/cpp-tutorial.html
从头开始:基本语法、数据类型、变量类型、各种运算符、循环语句、分支语句。。。一路学习
教程里写的很细了,没必要再搬过来一次,只挑自己认为比较特殊的点摘出来,重点记忆
基本数据类型
| 类型 | 关键字 |
|---|---|
| 布尔型 | bool |
| 字符型 | char |
| 整型 | int |
| 单精度浮点型 | float |
| 双精度浮点型 | double |
| 无类型 | void |
| 宽字符型 | wchar_t |
一些基本类型可以使用一个或多个类型修饰符进行修饰:
- signed
- unsigned
- short
- long
给类型起名字
这个挺好玩的,可以用 typedef 为一个已有的类型取一个新的名字。
例如,下面的语句会告诉编译器,feet 是 int 的另一个名称:
typedef int feet;
feet distance; // 跟 int distance 的作用相同
枚举类型
定义枚举的一般形式:
enum 枚举名{
标识符[=整型常数],
标识符[=整型常数],
...
标识符[=整型常数]
} 枚举变量;
例如:
enum color { red, green, blue } c;
c = blue;
定义常量
在 C++ 中,有两种简单的定义常量的方式:
1、使用 #define 预处理器
#define LENGTH 10
#define WIDTH 5
#define NEWLINE '\n'
2、使用 const 关键字
const int LENGTH = 10;
const int WIDTH = 5;
const char NEWLINE = '\n';
数组
double balance[10]; //声明数组
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0}; //声明并初始化数组
字符串
1、C风格字符串
char greeting[] = "Hello"; //来自:char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
2、C++ 引入的 string 类类型
#include <string>
string str1 = "Hello";
string str2 = "World";
一些疑惑
1、C++的namespace跟JAVA的package根本不是一回事,需要详细了解,尤其是那个官方的std;
2、头文件(*.h)和源文件(*.cpp)的模式还不太理解,需要深入学习;
3、extern:在声明变量或函数时的一个关键字,一般用在头文件(*.h)里,意思是其声明的函数或变量可以在全局使用。具体含义暂不理解,挂起待查。
下一步
除了上面的三点疑惑以外,下一步就要学习C++的杀手锏 -- 指针与引用了!
总结
通过第一天的初步了解,个人感觉,相比于JAVA的有迹可循,C++实在顽固了些,另外VS用起来也感觉没有Eclipse顺手,还需要慢慢习惯
对我这样更偏重于Web前端的人来说,实在不喜欢这种体验,但既然开始了就要坚持下去,期待下一天吧
C++学习笔记第一天:基础的更多相关文章
- 《Python基础教程(第二版)》学习笔记 -> 第一章 基础知识
写笔记的原因:书也看了一遍,视频也看了,但总是感觉效果不好,一段时间忘记了,再看又觉得有心无力,都是PDF的书籍,打开了就没有心情了,上班一天了,回家看这些东西,真的没多大精力了,所以,我觉得还是把p ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- oracle学习笔记第一天
oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字 1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...
- Java学习笔记:语言基础
Java学习笔记:语言基础 2014-1-31 最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...
- ActionBarSherlock学习笔记 第一篇——部署
ActionBarSherlock学习笔记 第一篇--部署 ActionBarSherlock是JakeWharton编写的一个开源框架,使用这个框架,可以实现在所有的Android ...
- 卷积神经网络(CNN)学习笔记1:基础入门
卷积神经网络(CNN)学习笔记1:基础入门 Posted on 2016-03-01 | In Machine Learning | 9 Comments | 14935 Vie ...
- 「学习笔记」字符串基础:Hash,KMP与Trie
「学习笔记」字符串基础:Hash,KMP与Trie 点击查看目录 目录 「学习笔记」字符串基础:Hash,KMP与Trie Hash 算法 代码 KMP 算法 前置知识:\(\text{Border} ...
- 【JAVAWEB学习笔记】06_jQuery基础
接05的学习笔记. 四.使用JQ完成省市二级联动 1.需求分析 使用jquery完成省市二级联动 2.技术分析 2.1数组的遍历操作 方式一: $(function(){ // 全选/ 全不选 $(& ...
- Django学习笔记---第一天
Django学习笔记 1.Django的安装 //如果不指定版本号,默认安装最新版 pip3 install django==1.11.8 关于Django的版本和python的版本依赖关系,请看下图 ...
- HTML学习笔记之标签基础
目录 1.基本标签 2.链接 3.图像 4.表格 5.列表 6.块与布局 1.基本标签 (1)标题与段落 标签 <h1> ~ <h6> 分别用于定义一至六级标题,标签 < ...
随机推荐
- 关于oracle视图小结
关于oracle的视图小记:一. 视图:就是对SQL语句的封装,使用起来更方便.不易出错 优点: 1.简化数据操作:视图可以简化用户处理数据的方式 2.着重于特定数据:不必要的数据或敏感的数据可以 不 ...
- zabbix邮件发送3.2.4
使用邮件服务发送,一般linux有两种发送方式 mail跟sendmail两款软件,我试验的时候总是会发生发送不了邮件的问题 简而便之,我两款软件都安装了,只要安装其中之一就ok了 #yum -y i ...
- jenkins构建一个maven项目[五]
标签(linux): jenkins 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 构建一个maven项目,即为构建java项目.模拟实验之前先把实验代码推送到 ...
- 13 Basic Cat Command Examples in Linux(转) Linux中cat命令的13中基本用法
Cat (串联) 命令是Linux/Unix开源系统中比较常用的一个命令.我们可以通过Cat命令创建一个或多个文件,查看文件内容,串联文件并将内容输出到终端设备或新的文件当中,这篇文章我们将会以实例的 ...
- Java基础系列--Executor框架(一)
文章来源:http://www.cnblogs.com/V1haoge/p/8393618.html 一.Executor框架介绍 Executor框架是JDK1.5之后出现的,位于juc包中,是并发 ...
- [DeeplearningAI笔记]神经网络与深度学习4.深度神经网络
觉得有用的话,欢迎一起讨论相互学习~Follow Me 4.2 深层神经网络中的前向传播 4.3 核对矩阵的维数 经验方法论 对于神经网络想增加得到没有bug的程序的概率的方法:需要仔细的思考矩阵的维 ...
- Spring MVC的DispatcherServlet
Spring MVC提供了一个名为org.springframework.web.servlet.DispatcherServlet的Selvet充当前端控制器,所有的请求驱动都围绕这个Dispatc ...
- Sonar 数据库表关系整理一(rule相关)
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/7510072.html 简介:Sonar ...
- HBase Filter及对应Shell--转
http://www.cnblogs.com/skyl/p/4807793.html 比较运算符 CompareFilter.CompareOp比较运算符用于定义比较关系,可以有以下几类值供选择: E ...
- MySQL死锁[转]
案例描述 在定时脚本运行过程中,发现当备份表格的sql语句与删除该表部分数据的sql语句同时运行时,mysql会检测出死锁,并打印出日志. 两个sql语句如下: (1)inse ...