首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请教,这两种数组的声明有什么区别

2012-08-16 
请问,这两种数组的声明有什么区别?#includevoid main(){char a 1char c[] 1234567890char *p 12

请问,这两种数组的声明有什么区别?
#include 
void main() 

char a = 1; 
char c[] = "1234567890"; 
char *p ="123123123"; 
a = c[1]; 
a = p[1]; 
return; 


程序员面试宝典上说:
char c[] = "1234567890"; 
char *p ="1234567890"; 
1234567890是在运行时刻赋值的; 
而123123123是在编译时就确定的; 


为什么会有这区别呢?小弟菜鸟,希望大牛不吝赐教

[解决办法]

探讨

引用:
#include
void main()
{
char a = 1;
char c[] = "1234567890";
char *p ="123123123";
a = c[1];
a = p[1];
return;
}

程序员面试宝典上说:
char c[] = "1234567890";
char *p ="1234567890";
1……

[解决办法]
程序运行时分有运行空间, 存在生命周期, 想想, 要是所有代码都在编译时确定, 工程一大, 会有多少代码文件空间?当然要别运行边销毁些数据了,这就是为什么产生了作用域和生命周期术语由来.
[解决办法]
一个是数组变量,其内容可以改变。
一个是字符串指针,其指向一个字符串常量,这个字符串常量的内容不可以改变。

热点排行