编程一些心得

来源:互联网 发布:数据分析师发展 编辑:程序博客网 时间:2024/06/05 20:25

char *S="fjakjfjssfa";

S[2]='k';

这是行不通的。程序内存分为5个区,栈,堆(不同于数据结构的堆,可以理解为链表),静态区,常量区,代码区。我们定义一个*S地址放在栈,但是其内容是个常量,他是放在常量区的。

但是以下代码:因为在栈区分配了40的空间来装字符串。

char S[40]="fjakjfjssfa";

S[2]='k';

栈用于缓存局部变量;堆用于动态分配内存;静态区存放全局,静态变量;常量存放const定义的和常量如上面的例子。

0 0