• 第四章


    1、数组

       sizeof用于整个数组名时将得到整个数组的字节数。

    初始化:double earnings[4] {};  //所有的元素都为零

               unsigned int counts[10]={};

               int a[]={1,3,4};

     

    2、字符串

     字符串是以空字符结尾的,空字符被些为。

     

      字符串常量:char bird[]=" S";(把S的地址传回去,还多一个)

        字符常量: char shirt_size='S';

     

       拼接字符串时,第一个字符串的尾部将被第二个字符串的字母给填充上。

       strlen()计算可以看见的字符,strlen(name).

     

       cin在读取字符串时,使用空格,制表符和换行符来确定字符串的结束位置,所以当输入the month,则cin不能一次读取,会先读出the,后来再输入时读取month。

      当要读New York时,可以用面向行的,cin.getline(),丢弃换行符,保留,如cin.getline(name,20),读取包含20个字符的name数组。

      get()会保留换行符,所以一般采用  cin.get(name,20);

                                                    cin.get();//用于读取输入name后的回车符,将缓冲队列里的回车符清除

                                                    cin.get(dessert,20);

    cin.get(name,20)调用后会返回一个cin对象,故也可以cin.get(name,20).get();

                                                                            cin.get(dessert,20).get();     getline()也可以这样用,效果一样

     

    3、string类简介

      string str="the month";

      cin>>str;

     

    string类合并可直接用+;赋值用=;长度用 str.size();

     strcpy(a,b)把b赋值给a    

    strcat(a,b)把b加到a的后面  //////  针对的是字符串!!!!

    4、结构简介

    struct A{

    }B; //A是结构体名称,B是这种结构体类型的变量

    也可以直接 (struct) A a;进行定义变量

     

    结构体初始化inflatable duck (=) {"Daphone " , 0.12 , 9.98};

    结构体变量之间也可以用=进行赋值

    5、共用体

    union one4all

    {

    int int_val;

    long long_val;

    double double_val;

    };

    每次使用只用其中一种数据类型

    struct widget

    {

    char brand[20];

    int type;

    union

    {

    long id_num;

    char id_char[20];

    };

    };这是匿名共用体,每次只能在id_num和id_char中选一个用

    6、枚举

    enum spectrum{red,orange,yellow,green,blue,violet,indigo,ultraviolet};//spectrum是新的类型名

    spectrum band  //band 变量的值只能在上述中选择  band=red或band=0

    也可以  int band= yellow(取2)

    enum bigstep{first,seconf=100,third};

    first默认为0,后面没被初始化的枚举量比前面的枚举量大1。因此third值为101.

    现在的枚举值可表示枚举的范围,上限是:找到比最大的枚举值大的一个最小的2的幂,将它减一,如最大值是101,则找到128-1=127.

    下限:为零或者为负。找负数时,跟正数一样,最后再加上符号。

    7、指针和自由存储空间

     &用来获取变量的地址,*称为解除引用运算符,应用于指针,可以得到地址处存储的值。int *p_updates     则p_updates 是地址变量,*p_updates是表示一个值。

    int updates=6;                                                                                     int higgens=5;

    int *p_updates;                                                                                    int * pt=&higgens;//*pt=5,pt指向的是一个地址

    p_updates=&updates;                                                                            因为在声明语句中初始化指针,这种情况下被初始化的是指针,而不是它指向的值,即这里是将pt进行初始化,而不是*pt。

    则*p_updates=6,p_updates是一个值

    int *pt;

    pt=(int *)0xBB8000000;数字要转化为地址类型,加上(int *)进行强制类型转换

    在程序运行时用指针分配内存空间

    typedef *pointer_name=new typeName;

    int *pt=new int;

    当用new申请的内存,可以用delete来归还内存,并且delete不能释放变量所获得内存

    int *pt=new int; delete pt;//这里只释放了pt指向的内存而没有删除指针pt本身,pt仍然可以重新指向另一个新分配的内存。

    int* psome= new int[10];//分配动态数组,psome指向第一个内存块的地址

    delete [] psome;//释放动态数组,一定要加[]

    psome[0]=2;//可以直接像数组那样访问

    8、指针、数组和指针算术

    C++允许指针直接与整数进行加减。

    关于使用句点运算符与箭头运算符的区别:

     如果结构标识符是结构名,则使用句点运算符;如果标示符是指向结构的指针,则使用箭头运算符。另外一种,如果ps是指向结构的指针,则*ps就是被指向的值--结构本身,则可用(*ps).price。一定要加上括号!

     10、数组替代品

    include<vector>

    vector<double > vd(n);//n可以是变量,即数组长度不固定

    include<array>

    array<int , 5> ai;//5是常量

     

  • 相关阅读:
    Ajax随笔
    hdu 1395 2^x mod n = 1 暴力过~~最好学下欧拉定理~~~
    云计算设计模式(二)——断路器模式
    STL algorithm算法minmax,minmax_element(36)
    格式化时间
    django 带參数的 url
    Linux下 目录 压缩 解压缩 打包
    事实上就是为了玩
    Datazen配置
    HotSpot关联规则算法(2)-- 挖掘连续型和离散型数据
  • 原文地址:https://www.cnblogs.com/daocaorenblog/p/4780611.html
Copyright © 2020-2023  润新知