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++程序的说明

  1. 关于C++程序本身:

    1. 每个C++程序都由很多个“函数”组成;
      1. 每个程序都以main( )函数开始(程序入口);
      2. 每个函数的形式都有“输入”和“输出”;
    2. 语句分号结尾,一行可以写多个语句,一个语句
      可以写多行;格式变化不会影响程序运行;

    3. 程序中的注释可以放在/*….*/之间,或 // 之后;
  2. 关于C++程序的运行环境
    1. C++程序均保存在 xxx.cpp 的文件之中;
    2. 不同的文件之间可以互相“引用”; 
      1. 通过“ include”实现;
    3. xxx.cpp 文件不能直接执行,通过编译器进行编译、连接,形成可执行文件才能执行;

       

  3. C++程序的加工和执行
    1. 源程序,不能直接执行,必须先把它转换
      为可执行程序。

    2. 加工通常分两步:编译、连接

  4. 关于C++程序的书写
    1. 每行程序的书写必须按照逻辑进行缩进;
    2. 编写如下程序行时,应该提供注释:
      1. 变量的定义; //说明变量代表的意义或作用;
      2. 函数的定义; //说明该函数的主要作用;
      3. 复杂逻辑出现时; //解释一段语句的作用;
    3. 变量的命名应该尽可能体现变量的含义;

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. 程序设计语言的构成

语言的种类千差万别,但是,一般说来,基本成分不外四种:

  1. 数据成分,用以描述程序中所涉及的数据;
  2. 运算成分,用以描述程序中所包含的运算;
  3. 控制成分,用以表达程序中的控制构造;
  4. 传输成分,用以表达程序中数据的传输;

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++的更多相关文章

  1. Android动画效果之初识Property Animation(属性动画)

    前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...

  2. 初识Hadoop

    第一部分:              初识Hadoop 一.             谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...

  3. python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)

    一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...

  4. 初识IOS,Label控件的应用。

    初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...

  5. UI篇(初识君面)

    我们的APP要想吸引用户,就要把UI(脸蛋)搞漂亮一点.毕竟好的外貌是增进人际关系的第一步,我们程序员看到一个APP时,第一眼就是看这个软件的功能,不去关心界面是否漂亮,看到好的程序会说"我 ...

  6. Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

    Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...

  7. 初识SpringMvc

    初识SpringMvc springMvc简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 s ...

  8. 初识redis数据类型

    初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...

  9. Redis初识、设计思想与一些学习资源推荐

    一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...

  10. MongoDB【第一篇】MongodDB初识

    NoSQL介绍 一.NoSQL简介 NoSQL,全称是”Not Only Sql”,指的是非关系型的数据库. 非关系型数据库主要有这些特点:非关系型的.分布式的.开源的.水平可扩展的. 原始的目的是为 ...

随机推荐

  1. lalala

    <script type="text/javascript"> var a_idx = 0; var b_idx = 0; var a = new Array(&quo ...

  2. cf1073d Berland Fair

    ~~~题面~~~ 题解: 可以发现,每走完一圈付的钱和买的数量是有周期性的,即如果没有因为缺钱而买不起某家店的东西,那么这一圈的所以决策将会和上一圈相同,这个应该是很好理解的,想想就好了. 因为钱数固 ...

  3. [Leetcode] gas station 气站

    There are N gas stations along a circular route, where the amount of gas at station i isgas[i]. You ...

  4. HDU 2655 主席树

    Kth number Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  5. HDU 1715 大数java

    大菲波数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  6. HDU2841 (队列容斥)

    Visible TreesTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot ...

  7. HDU4612:Warm up(缩点+树的直径)

    Warm up Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Su ...

  8. 学习tcpIp必备的抓包工具wireshark

    wireshark是一个优秀的抓包工具 ip.src=192.168.10.123  发送http的一端 ip.dst=192.168.10.126 接收http的一端 如下图所示:

  9. jq 数组定义,拼接~~~push应用

    var radio_checked_array = []; $("input[type='radio']").each(function(){ if($(this).attr('c ...

  10. Python to list users in AWS

    code import boto3 c1=boto3.client('iam') #list_users will be a dict users=c1.list_users() #transfer ...