数组和指针区别课件.pptVIP

  • 0
  • 0
  • 约1.36千字
  • 约 10页
  • 2017-08-20 发布于河南
  • 举报
数组和指针区别课件

;;char str[10]; char *pstr=str; coutsizeof(str); coutsizeof(pstr); 第一行输出结果是:10,第二行输出结果是:4;数组名对应着(而不是指向)一块内存(数组所占的内存区域)或者说是指代数组这种数据结构,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针对应着一个占据4个字节(Win32)的内存区域,而指向这4个字节所存储的地址所对应的内存单元,它可以指向任意类型的内存块。因此,sizeof(str)值为数组占据的内存空间大小即10个字节,而sizeof(pstr)值为指针的值占据的内存空间大小即4个字节。 ; 数组或是在静态存储区被创建(全局数组),或是在栈上被创建。数组名对应着,注意不是指向,一块内存,其地址与容量在生命期内保持不变(当然,使用了realloc()的不算),只有数组的内容可以改变。 ? ??? 指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,当然也就更危险。;??? 用运算符sizeof可以计算出数组的容量(字节数)。(包括最后面的\0)。指针p指向a,但是sizeof(p)的值却是4。这是因为sizeof(p)得到的是一个指针变量的字节数,相当于sizeof(char*),而不是p所指的内存容量siziof(cha

文档评论(0)

1亿VIP精品文档

相关文档