CPP Primer 第四章

//
//数组
//
/*
void main()
{
 const unsigned buf_size= 512, max_files = 20;
 int staff_size = 27;
 const unsigned array_size = 3;
 int ia[array_size] = {0,1,2};
 string str_arr[array_size] = {"hi","bye"};

 //字符数组既可以用一组由花括号括起来、逗号隔开的字符字面值进行初始化,
 //也可以用一个字符串字面值进行初始化。
 //但是,字符串字面值自动包含一个空字符用于结束字符串。
 char ca1[] = {'C','+','+'};
 char ca2[] = {'C','+','+','/0'};
 char ca3[] = "C++";//ca2 和 ca3 一样,维数是4

 //数组不允许直接复制和赋值。

}
*/
/*
void main()
{
 const size_t array_size = 10;
 int ia[array_size];
 for (size_t ix = 0; ix != array_size; ++ ix)
 {
  ia[ix] = ix;
 }
}*/
//
//4.2 指针
//5-25
//vector的遍历可使用下标或迭代器,
//数组的遍历可用下标或指针
/*
#include <string>
#include <vector>
using namespace std;
void main()
{
 string s("hello world");
 string *sp = &s;

 vector<int> ivec ;
 vector<int> *pvec = &ivec;

 int ival = 1024;
 int *pi = 0;
 int *pi2 = &ival;
 int *pi3 = 0; //指针可以用0初始化,表示不指向任何值。
 pi = pi2;
 pi2 = 0;
 string *sp1 = 0;
 //除了使用数值0或在编译时值为0的const量外,还可以使用C++语言从C语言中继承下来的预
 //处理变量NULL,值为0
 int *p = NULL;
 
 //void* 指针
 //它可以保存任何类型对象的地址。
 double obj = 3.14;
 double *pd = &obj;
 void *pv = &obj;
 pv = pd;
 //int *pi1 = pv;
 //cannot convert from 'void *' to 'int *'
 //但不允许使用void*指针操纵它所指向的对象。因为它不知道它所指向的对象的类型。 
}
*/
/*
#include <string>
#include <vector>
#include <iostream>
using namespace std;
void main()
{
 string s("hello world");
 string *sp = &s;
 cout << *sp << endl;
 *sp = "goodbye";
 cout << *sp << endl;
 string s2 = "some value";
 sp = &s2;
 cout << *sp << endl;
 
 string *sp3 = 0;
 *sp3 = "goodbye"; //这样行 //表示sp3指向的值 //这难道是在堆中建个字符串,由指针指向它?
 //string *sp3 = "goodbye"; //这样不行 //表示*sp3要地址初始化
}*/
//4.2.4使用指针访问数组元素
#include <string>
#include <vector>
#include <iostream>
using namespace std;
void main()
{
 int ia[] = {0,2,4,6,8};
 int *ip = ia;
 int *ip2 = ip+ 4;
 //ip = &ia[4];
 ptrdiff_t n = ip2 - ip;
 cout << n << endl;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值