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”,指的是非关系型的数据库. 非关系型数据库主要有这些特点:非关系型的.分布式的.开源的.水平可扩展的. 原始的目的是为 ...
随机推荐
- lalala
<script type="text/javascript"> var a_idx = 0; var b_idx = 0; var a = new Array(&quo ...
- cf1073d Berland Fair
~~~题面~~~ 题解: 可以发现,每走完一圈付的钱和买的数量是有周期性的,即如果没有因为缺钱而买不起某家店的东西,那么这一圈的所以决策将会和上一圈相同,这个应该是很好理解的,想想就好了. 因为钱数固 ...
- [Leetcode] gas station 气站
There are N gas stations along a circular route, where the amount of gas at station i isgas[i]. You ...
- HDU 2655 主席树
Kth number Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- HDU 1715 大数java
大菲波数 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- HDU2841 (队列容斥)
Visible TreesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...
- HDU4612:Warm up(缩点+树的直径)
Warm up Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Su ...
- 学习tcpIp必备的抓包工具wireshark
wireshark是一个优秀的抓包工具 ip.src=192.168.10.123 发送http的一端 ip.dst=192.168.10.126 接收http的一端 如下图所示:
- jq 数组定义,拼接~~~push应用
var radio_checked_array = []; $("input[type='radio']").each(function(){ if($(this).attr('c ...
- Python to list users in AWS
code import boto3 c1=boto3.client('iam') #list_users will be a dict users=c1.list_users() #transfer ...