我正在阅读Head First C书,我读到我们无法更改字符串文字,因为它存储在一个只读内存的常量内存池中.所以朋友是这个恒定的内存池和系统的ROM都是一回事.或者在ROM以外的内存中还有另一个常量的内存池.如果我声明一个字符串它将存储在ROM中,而如果我声明一个int或其他任何东西它将进入RAM?这是真的
main()
{
char *c="abhishek";
int i;
c[2]=90;
for(i=0;i<12;i++)
{
printf("%c",c[0])
}
}
Run Code Online (Sandbox Code Playgroud)
这里的输出是abZishek.但这会导致总线错误,因为这是一个字符串文字,我们无法更改其值.为什么c变化的价值?
main ()
{
char i = 0;
for (i <= 5 && i >= -1; ++i; i > 0)
printf ("%d", i);
getch ();
}
Run Code Online (Sandbox Code Playgroud)
我是一名Java学生,最近我开始做C程序.我在C书中看到了这个问题.我对这个程序有以下疑问:
1,2,3,4.....126,127,-128....-2,-1.为什么输出停在-1?这应该是一个无限的系列,永远重复上述系列.