基本语言(一)

一、基本类型

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.类型转换。

原文地址:https://www.cnblogs.com/hometown/p/3204244.html