Chinaunix首页 | 论坛 | 博客
  • 博客访问: 41780
  • 博文数量: 7
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 60
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-23 18:46
文章分类
文章存档

2015年(3)

2014年(4)

我的朋友

分类: C/C++

2014-08-23 19:18:11


A),char *p = “abcdef”;

B),char a[] = “123456”;
均定义在函数内部
A)定义了一个指针变量p,p 本身在栈上占4 个byte ,p 里存储的是一块内存的首

地址。这块内存在静态区,其空间大小为 7 个byte  
//从A的假设, 这两个都是局部变量. 也就是 auto类型的.

B)定义了一个数组a ,a 拥有7 个char 类型的元素,其空间大小为 7 。
那么数组a在栈上,a退化成指针之后的值是 数组a的第一个元素开始的地址的值.
“123456”在静态区,其空间大小为 7 个byte,程序运行的时候,运行到char a[] = “123456”;时候,
程序中的指令 将"123456"拷贝 到 数组a里面.

因此分配栈空间与否 应该是字符指针和字符数组的一个区别
阅读(1284) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~