memory address
日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
#include<stdio.h>
#include<string.h>
int main()
{
int x = 10;
char c[10];
printf("%d\n", strlen( c ) );
strcpy( c, "1234567890987" );
printf("%d\n", x);
return 0;
}
我没试,我等下试下。
我猜 strlen(c) 的结果是 9;
x的结果 是10;
经过 strcpy(c,"1234567890987")后。c="123456789"
不知道对不对
最严重的问题是
strcpy( c, "1234567890987" );
由于这个极其严重的错误
使得
printf("%d\n", x);
也无法确定有确定的输出
正解!
因为给字符数组c赋值的长度超过定义的长度 所以会存储时影响内存空间的分配 可能连x的空间也会占用
所以sizeof(c)是一个不确定的值,x的值当然也会变,就不一定是10了