zoukankan      html  css  js  c++  java
  • C++学习笔记(一)

    一、语法学习

    1、定义了一套算数类型(arithmetic type)和空类型(void)的基本数据类型

    (1)算数类型:分两类整形(integral type,包括字符(char),整形(int),布尔(bool))和浮点类型(float),类型的尺寸根据机器的不同,长度也有所不同。

    除去布尔类型和扩展的字符类型意外,其他证书类型可以划分为带符号的(signed)和无符号的(unsigned)的两种。带符号的可以标识正数,负数,0,无符号的只能表示大于等于0的值。
    与其他整数类型不同,字符型被分为了三种:char,signed char和unsigned char。字符类型表现形式只能表现两种:带符号的和不带符号的,char和signed char不同,char只能表示两种类型的一种,具体有编译器决定。
    注意:1、执行浮点计算尽量用double,因为float精度不够,单精度和双精度计算代价相差不多。

    (2)空类型:不对应具体的值

    2、声明与定义的区别

    声明和定义都规定了变量的类型和名称,但是定义还申请了存储空间,也可能会为变量赋予一个初始值。

    extern int i; //声明了i而非定义了i
    int j; //声明并定义了j

     变量能且只能定义一次,但是可以被多次声明

    3、变量标识符定义规范

    C++标识符由字符、数字和下划线组成,必须以字母和下划线开头,对大小写敏感。定义的标识符不能够同时连续出现两个下划线,也不能下划线紧跟大写字母开头。定义在函数体外的标识符不能以下划线开头。

    4、数组

    int *(&arr)[10] = prts; // arr是数组的引用,该数组有10个指针

    想要理解数组声明的含义,最好的方法是从数组的名字开始按照由内向外的顺序阅读。
    首先知道arr是一个引用,然后观察右边知道arr引用的对象是一个大小为10的数组,最后观察左边知道,数组的元素类型是指向int的指针。

    数组除了固定大小以外,其他用法和vector基本类似。

    unsigned scores[11] = {};  //11个分数段,全部初始化0
    unsigned grade;
    while (cin >> grade) {
      if(grade <= 100) {
         ++scores[grade/10]; //将当前分数段计数值加一
      }  
    }

    --指针和数组

    使用数组的时候,编译器一般会把它转换成指针。
    指针指向数组第一个元素例子

    string nums[] = {"first", "second", "third"};
    string *p = &nums[0];  // p指向nums的第一个元素
    //string *p2 = nums; 等价于 p2 = &nums[0];

    由上面可以推断出使用数组作为auto变量的初始值,得到的类型是指针而非数组。

  • 相关阅读:
    bzoj1625 / P2871 [USACO07DEC]手链Charm Bracelet
    bzoj1623 / P2909 [USACO08OPEN]牛的车Cow Cars
    bzoj1622 / P2908 [USACO08OPEN]文字的力量Word Power
    bzoj1621 / P2907 [USACO08OPEN]农场周围的道路Roads Around The Farm
    bzoj1620 / P2920 [USACO08NOV]时间管理Time Management
    [3.10校内训练赛]
    [bzoj1084][SCOI2005]最大子矩阵
    [bzoj1500][NOI2005]维修数列
    bzoj省选十连测推广赛
    多项式插值学习记录
  • 原文地址:https://www.cnblogs.com/hifelix/p/5924771.html
Copyright © 2011-2022 走看看