指针数组

知识点:1、2、3、4、5

 

1、指向数组的指针,指针数组的区别:

  BYTE arry[10]={1,2,3};  

  BYTE *ptrarry=arry;

 

2、指针数组(字符指针数组)每个数组都是一个指针

 char *strarry[3]={"hello","test","tttt"};

 

3、指向字符串的字符指针(字符指针一般用来指向字符串) 字符串有两种表达方式:一、字符数组'/0'结尾;二、字符串常量(用字符指针来表示)

 char *str ="string";

 

 cout<<str; string

 cout<<*str;s

 为什么呢? 这个是规定,需要记忆。

 

4、指向常量的指针(表示方法,最前面加const)

    const int a=3,int b=4;

    const int *ptr=&b;

    ptr = &a; // 正确 不限制指针变量本身的操作

    *ptr = 5; // 错误 限制指针间接访问的操作。不会限制对指针指向的空间操作。

     b =5;     // 正确

5、指针常量

    int k=5,j=6;

    int  * const ptr =&k;

    ptr =&j    // 错误 限制指针变量本身的操作。

    *ptr =32;//正确 不限制指针间接访问的操作。

 

6、void *一个指针类型,数据内容是内存地址,数据类型是void

 

实际问题:memcpy(str,'/',1);有错吗?为什么?memcpy(void *,const void *,size_t)

    memcpy(str,"/",1);才是正确的,

   const void *是 一个指向常量的指针,数据类型是void

   const void * ="/" 正确

   const void * ='/'  错误

 

 

2011-04-06 wcg

 

 

7 、字符数组初始化。

  字符数组可以用多个字符或一个字符串进行初始化,但需注意:字符常量是以空字符(‘/0’)结尾,因而也占据一个数组元素的位置。下面是一些初始化字符串数组的例子:

 char cal[]={'c','h','a','r'}; //定义了大小为4的字符数组

 char ca2[]="char";         //定义了大小为5的字符数组,注意它与上面的语句不等价

 char ca3[4]="char";       //错误!数组大小(4)小于初始化值的个数(5)

 BYTE szchar[] ="/x10/x20/x30/x40";

 

2011-06-26 wcg

char szTaskBuffer[]={0x00,0x03,0x01,0x02,0x04};


2013-12-26 wcg

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值