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里面.
因此分配栈空间与否 应该是字符指针和字符数组的一个区别
阅读(1308) | 评论(0) | 转发(0) |