zoukankan      html  css  js  c++  java
  • 基本语言(一)

    一、基本类型

    1. 字符类型有两种, charwchar_t.

    char通常是单个机器字节(byte);

    wchar_t 类型用于扩展字符集,如汉字,日文。

    Eg: char ‘w’  ‘3’   ‘,’

       在单个字符前加L可得到wchar_t ,    L’a’

     字符串同样,eg:   ”rxm,woizhogng”

                       L”string print”

    2. 整型包含整数,字符和布尔值。可以是带符号的,也可以是不带符号的。

    默认是带符号的,无符号型加前缀unsigned

    Eg: int,long,char

       unsigned int,unsigned long,unsigned char.

    数据可以加前缀0表示8进制,0x0X表示16进制。

    可以加后缀Uu表示unsigned类型。

     3.声明和定义。

       变量的定义用于为变量分配内存空间。

       可以用extern 声明,表名变量的名字和类型,不分配空间。

     Eg: int a=90;

       extern int a;//声明,非定义

       int a;声明且定义。(值默认)

    4.const对象默认为文件的局部变量

      通过指定const变量为extern,可以在整个程序中访问const对象。

     Egextern const  int ia=90;

    5.typedef 用来定义类型的同义词。

      Egtypedef int age;

            typedef double salary;

    二、标准库类型

     1.string类型

     string s;

       cin>>s;

       string::size_type len=s.size(); //s.size()返回s中字符的个数,其类型是string::size_type

       string类型可通过下标访问单个字符,

          最后一个字符s[s.size()-1]

     

    string 对象中字符的处理,多数位于cctype头文件中。

    #include<cctype>

     

    2.vector类型

    #include <vector>

    using std::vector;

    vector是一个类模板,必须说明其保存何种对象的类型,

    eg:vector<int> ivec;               vector<string> svec;

    vector添加元素,push_back().

    string s;

        vector<string> svec;

        while (cin>>s)

        {

            svec.push_back(s);//添加元素

        }

     

    4.迭代器

     迭代器是一种检查容器内元素,并遍历元素的数据类型。

    vector<int>::iterator iter;

    eg:以下等价。

    for(vector<int>::size_type i=0;i!=ivec.size();++i)

    {

      ivec[i]=0;

    }

     

    for(vector<int>::iterator i=ivec.begin(); i!=ivec.end();++i)

    {

    *i=0;//使用解引用操作符取其指向的值。

    }

     

    const_iterator,只读的,不能对其指向的值修改!

    迭代器的算术运算:

     ivec-n  ivec+n  指向ivec位置n个元素后或前的元素!

     ivec-ivec1两迭代器之间的距离!

    三、数组和指针

    数组和指针与vector和迭代器类似。尽量多用vector和迭代器。

    1.数组

     字符数组初始化

      char ca1={‘a’,’b’,’c’};//长度为3

      char ca2=”abc”; //长度为4,字符串字面值初始化是默认带一空字符。

    vector使用vector::size_type作为下标的类型,数组下标的正确类型为size_t

    const size_t len=9;

    string strs[len];

     

    2.指针

      指针保存的是一个对象的地址。

     string s(“rxm”);

     string* ps=&s;

     

     指针与数组密切相关,在表达式中使用数组名,该名字会自动转换为数组中第一个元素的指针。

    int  ia[3]={3,6,9};

    int * pia=ia;//pia指向的值为ia[0].

    两个指针相减,类型为ptrdiff_t,两指针指向元素的间隔。cstddef头文件中

    int ia[]={3,6,7,4,3,4,3,21};

     

        int *pia=ia;

        int *pia1=&ia[7];

     

        ptrdiff_t len=pia-pia1;

     

        cout<<len;

     

        system("pause");

    四、表达式

    1. sizeof操作符返回对象或类型名的长度。返回类型size_t.

    求数组元素个数。

    int ia[]={3,6,7,4,3,4,3,21};

     

        cout<<sizeof(ia)/sizeof(*ia);

             

        system("pause");

    2.new delete表达式

     动态创建对象时,只需要指定其数据类型。

    int *pa=new int;

    string *ps=new string;

    new表达式在自由存储区分配创建一个对象,返回对象的地址,并把地址初始化为定义的指针。

    delete pa;delete ps;释放其指针指向的内存空间。

    释放后指针变成了悬浮指针,安全的做法。

    Pa=0;ps=0.

    3.类型转换。

  • 相关阅读:
    每日英语:Surviving a Conference Call
    每日英语:Boost Your Balance; Avoid Falls
    每日英语:Proactive Advice for Dealing With Grief: Seek Out New Experiences
    每日英语:Tencent Fights for China's Online Shoppers
    每日英语:5 Things to Know About Missing Malaysia Airlines Flight and Air Safety
    每日英语:Does China Face a Reading Crisis?
    每日英语:Six Ways to Modernize Your Car
    每日英语:Welcome to the Global Middle-Class Surge
    阿里巴巴 Sentinel + InfluxDB + Chronograf 实现监控大屏
    SpringBoot 2.0 + InfluxDB+ Sentinel 实时监控数据存储
  • 原文地址:https://www.cnblogs.com/hometown/p/3204244.html
Copyright © 2011-2022 走看看