C++——初识C++
1. C关键字
| auto | int | double | long | char | float | short | signed |
| unsigned | struct | union | enum | static | switch | case | default |
| break | register | const | volatile | typedef | extern | return | void |
| continue | do | while | if | else | for | goto | sizeof |
2. C++关键字
| auto | break | case | char | const |
| continue | default | do | double | else |
| enum | extern | float | for | goto |
| if | int | long | register | return |
| short | signed | siezeof | static | struct |
| switch | typedef | unsigned | union | void |
| volatile | while | bool | catch | class |
说明:C++中新增数据类型bool,class是面向对象中类的声明符,catch与异常处理有关。
2. C语言数据类型:
- 基本数据类型只有5种:char、int、float、double、void
- 但是可以用修饰符:signed、unsigned、short、long按一定规则组合
- signed、unsigned可以修饰:char、int
- short、long可以修饰:int
- long可以修饰float:此时long float 即为double类型
- signed、unsigned可以与short、long修饰的int型搭配
- 自定义数据类型:
- 数组(类型[])
- 指针(类型*)
- 构造数据类型:
- 结构体型struct
- 联合体型union
- 枚举类型enum
3. C++数据类型

4. 关于C++程序的说明
关于C++程序本身:
- 每个C++程序都由很多个“函数”组成;
- 每个程序都以main( )函数开始(程序入口);
- 每个函数的形式都有“输入”和“输出”;
语句分号结尾,一行可以写多个语句,一个语句
可以写多行;格式变化不会影响程序运行;- 程序中的注释可以放在/*….*/之间,或 // 之后;
- 每个C++程序都由很多个“函数”组成;
- 关于C++程序的运行环境
- C++程序均保存在 xxx.cpp 的文件之中;
- 不同的文件之间可以互相“引用”;
- 通过“ include”实现;
xxx.cpp 文件不能直接执行,通过编译器进行编译、连接,形成可执行文件才能执行;
- C++程序的加工和执行
源程序,不能直接执行,必须先把它转换
为可执行程序。加工通常分两步:编译、连接

- 关于C++程序的书写
- 每行程序的书写必须按照逻辑进行缩进;
- 编写如下程序行时,应该提供注释:
- 变量的定义; //说明变量代表的意义或作用;
- 函数的定义; //说明该函数的主要作用;
- 复杂逻辑出现时; //解释一段语句的作用;
- 变量的命名应该尽可能体现变量的含义;
5. 程序释义:计算任务的处理对象和处理规则的描述。
- 计算任务:任何以计算机为处理工具的任务都是计算任务。
- 处理对象是数据(如数字、文字、图形、图像、声音等,它们只是表示,而无含义)或信息(数据及有关的含义)。
- 处理规则一般指处理动作和步骤。
6. 程序设计语言的分类
- 机器语言
- 汇编语言
- 高级语言
7. 学习内容

8. C语言历史
- Algol 60: 1960年1月,图灵奖获得者Alan J.Perlis在巴黎举行的由全世界一流软件专家参加的讨论会上,发表了“算法语言Algol60报告”,确定了程序设计语言Algol 60。( A 语言)
- 1963年,剑桥大学在ALGOL 60的基础上推出了CPL( Combined Programming Language)语言,但规模比较大,难以实现。 1967年,剑桥大学的Matin Richards对CPL语言作了简化,推出了BCPL( Basic Combined Programming Language)语言。 1970年贝尔实验室的Ken Thompson进一步简化,设计出了B语言,并用B语言写第一个UNIX操作系统,在PDP-7上实现。
- C语言是在1972-1973年间由UNIX的研制者Dennis Ritchie和Ken Thompson在B语言的基础上发展和完善起来的。
9. C语言版本
- K&R C
- 在1978年, Kernighan和Ritchie的《 The C Programming Language》 第一版出版。在以后的几年里, 《 The C Programming Language》 一直被广泛作为C语言事实上的规范。在这本书中, C语言通常被表述成“ K&R C”。
- ANSI C和ISO C( 1989年)
- 1989年, C语言被ANSI标准化,对 K&R C进行了扩展,包括了一些新的特性,也规定了一套标准函数库。
- ISO成立 ISO/IEC JTC1/SC22/WG14工作组来规定国际标准的C语言。
- 通过对ANSI标准的少量修改,最终通过了ISO 9899:1990。随后ISO标准被ANSI采纳。
- ANSI C和ISO C( 1995年)
- 作为对标准的维护与更新, WG14工作小组在1995年对1985年颁布的标准做了两处技术修订(缺陷修复)和一个补充(扩展)。
- C99
- 在ANSI标准化后, WG14小组继续致力于改进C语言。新的标准很快推出,就是ISO9899:1999( 1999年出版)。这个版本就是通常提及的C99。它被ANSI于2000年三月采用。
10. 从C到C++
- 美国AT&T贝尔实验室的本贾尼( Bjarne Stroustrup)在20世纪80年代初期发明并实现了C++(最初被称作“ C with Classes”)。
- 1985年10月, Bjarne博士完成了经典巨著The C++ Programming Language第一版 ;
- 1998年11月ISO颁布了C++程序设计语言的国际标准ISO/IEC 14882-1998。
- 2003年发布一个C++标准的修正版本;每5年视实际需要更新一次标准。
11. 执行一个C++程序

12. 命令行参数
用户通过命令行界面执行某个程序时输入的参数;C++ 程序通过入口函数 main() 来接收命令行参数。
一个简单的例子:
#include <iostream>
#include <string> using namespace std; int main(int argc, char **argv) { // or char* []argv
for (int i = ; i < argc; ++i) {
cout << string(argv[i]) << endl;
}
return ;
}
- 参数 argc 表示启动程序时,传入的命令行参数的个数
- 参数 argv 是一个数组,其每个元素都是一个 char* 类型的指针
- 每个指针都指向一个字符串,这个字符串里就存放着对应的命令行参数
- argv[i] 指向的字符串中就存放着第 i 个命令行参数的值
- 命令行参数的第一个值永远是可执行程序自身的名字
- argc 的值至少是 1
- argv[0] 指向的字符串就是这个可执行程序的名字
13. 数制转换
把十进制数转换为二进制数的方法是:
整数转换用“ 除2取余法”:

小数转换用“乘2取整法”:

14. 程序设计语言的构成
语言的种类千差万别,但是,一般说来,基本成分不外四种:
- 数据成分,用以描述程序中所涉及的数据;
- 运算成分,用以描述程序中所包含的运算;
- 控制成分,用以表达程序中的控制构造;
- 传输成分,用以表达程序中数据的传输;
15. 整型数据的范围:

一个例子:(在mac air x86_64系统演示)
#include <iostream>
int main(){
std::cout<<std::endl;
std::cout<<"sizeof short [int]: "<<sizeof(short int)<<std::endl;
std::cout<<"sizeof signed short [int]: "<<sizeof(signed short int)<<std::endl;
std::cout<<"sizeof unsigned short [int]: "<<sizeof(unsigned short int)<<std::endl;
std::cout<<std::endl;
std::cout<<"sizeof int: "<<sizeof(int)<<std::endl;
std::cout<<"sizeof signed int: "<<sizeof(signed int)<<std::endl;
std::cout<<"sizeof unsigned int: "<<sizeof(unsigned int)<<std::endl;
std::cout<<std::endl;
std::cout<<"sizeof long [int]: "<<sizeof(long int)<<std::endl;
std::cout<<"sizeof signed long [int]: "<<sizeof(signed long int)<<std::endl;
std::cout<<"sizeof unsigned long [int]: "<<sizeof(unsigned long int)<<std::endl;
std::cout<<std::endl;
return 0;
}
结果如下:

16. 以不同方式输出整数
#include <iostream>
using namespace std;
int main(){
int x = , y = , z = ;
cout<<"To display in decimal: ";
cout<<"x = "<<x<<", y = "<<y<<", z = "<<z<<endl;
cout<<"To display in hex: ";
cout<<hex<<"x = "<<x<<", y = "<<y<<", z = "<<z<<endl;
cout<<"To display in oct: ";
cout<<oct<<"x = "<<x<<", y = "<<y<<", z = "<<z<<endl;
return 0;
}
结果:

17. 变量未初始化
#include <iostream>
using namespace std;
int main(){
int a;
for(auto i = ; i < ; i++)cout<<a<<endl;
return ;
}
结果:

C++——初识C++的更多相关文章
- Android动画效果之初识Property Animation(属性动画)
前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...
- 初识Hadoop
第一部分: 初识Hadoop 一. 谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...
- python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)
一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...
- 初识IOS,Label控件的应用。
初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...
- UI篇(初识君面)
我们的APP要想吸引用户,就要把UI(脸蛋)搞漂亮一点.毕竟好的外貌是增进人际关系的第一步,我们程序员看到一个APP时,第一眼就是看这个软件的功能,不去关心界面是否漂亮,看到好的程序会说"我 ...
- Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...
- 初识SpringMvc
初识SpringMvc springMvc简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 s ...
- 初识redis数据类型
初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...
- Redis初识、设计思想与一些学习资源推荐
一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...
- MongoDB【第一篇】MongodDB初识
NoSQL介绍 一.NoSQL简介 NoSQL,全称是”Not Only Sql”,指的是非关系型的数据库. 非关系型数据库主要有这些特点:非关系型的.分布式的.开源的.水平可扩展的. 原始的目的是为 ...
随机推荐
- BZOJ4897 [Thu Summer Camp2016]成绩单 【dp】
题目链接 BZOJ4897 题解 发现我们付出的代价与区间长度无关,而与区间权值范围有关 离散化一下权值 我们设\(f[l][r][x][y]\)表示区间\([l,r]\)消到只剩权值在\([x,y] ...
- fhq_treap 学习笔记
前言:昨天写NOIp2017队列,写+调辗转了3h+,不知道怎么的,就点进了一个神仙的链接,便在今日学习了神仙的fhq_treap. 简介:fhq_treap功能强大,支持splay支持的所有操作,代 ...
- js空对象判断 isPlainObject
//有缺陷,JSON.stringify(obj)中,如果obj本来是空的,又继承了一个非空的对象那么结果也会是“{}” 1. JSON.stringify(obj) == '{}' 2. Objec ...
- Flex 布局教程:实例篇【转】
Flex 布局教程:实例篇 作者: 阮一峰 日期: 2015年7月14日 原文:http://www.ruanyifeng.com/blog/2015/07/flex-examples.html ...
- stout代码分析之十:c++11之move和forward
stout中大量使用了c++11的特性,而c++11中move和forward大概是最神奇的特性了. 左值和右值的区别 ; // a是左值,0是右值 int b = rand(); // b是左值,r ...
- How to solve “Device eth0 does not seem to be present, delaying initialization” error
Today, I encountered with a strange error after I cloned CentOS 6 guest machine in Oracle VirtualBox ...
- 小米路由器设置DMZ主机 并在外网访问
一.前提条件: 1.小米路由器 2.拥有公网IP的网络 二.步骤: 1.登陆小米路由器管理界面 miwifi.com 2.高级设置=>端口转发 页面底部的DMZ选项开启,然后选择需要映射到外 ...
- 详解ListView加载网络图片的优化
我们来了解一些ListView在加载大量网络图片的时候存在的常见问题: 1.性能问题,ListView的滑动有卡顿,不流畅,造成非常糟糕的用户体验. 2.图片的错位问题. 3.图片太大,加载Bitma ...
- js中style,currentStyle和getComputedStyle的区别以及获取css操作方法
在js中,之前我们获取属性大多用的都是ele.style.border这种形式的方法,但是这种方法是有局限性的,该方法只能获取到行内样式,获取不了外部的样式.所以呢下面我就教大家获取外部样式的方法,因 ...
- java File (文档流)
一. 数据流的基本概念 1.数据流 在Java中把不同的数据源与程序之间的数据传输都抽象表述为“流”(stream),以实现相对统一和简单的输入/输出操作方式.传输中的数据就像流水一样,也称为数据 ...