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

  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. 加工通常分两步:编译、连接

    3.  

  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 = 0; i < argc; ++i) {
        cout << string(argv[i]) << endl;
    }
    return 0;
}    
  • 参数 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 = 10, y = 20, z = 30;
    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 = 0; i < 10 ; i++)cout<<a<<endl;
    return 0;
}

结果:

 

posted @ 2018-09-19 08:22  怪猫佐良  阅读(262)  评论(0编辑  收藏  举报