//Question1
#include <stdio.h>
#include <string.h>
void main()
{
int x = 35;
char str[10];
printf("x = %d,strlen(str)=%d,sizeof(str)=%d\n",x,strlen(str),sizeof(str));
}
此时输出 x = 35,strlen(str)=13,sizeof(str)=10 对strlen(str)=13不解
如果把前两行调个位结果又不一样如下:
//Question2
#include <stdio.h>
#include <string.h>
void main()
{
char str[10];
int x = 35;
printf("x = %d,strlen(str)=%d,sizeof(str)=%d\n",x,strlen(str),sizeof(str));
}
这时输出 x = 35,strlen(str)=15,sizeof(str)=10 对strlen(str)=13
这个更不可思议了
//Question 3
#include <stdio.h>
#include <string.h>
void main()
{
int x = 35;
char str[10];
strcpy(str,"www.it315.org"/*共13个字母*/);
printf("x = %d,strlen(str)=%d,sizeof(str)=%d\n",x,strlen(str),sizeof(str));
}
此时输出x = 103,strlen(str)=13,sizeof(str)=10 对x的值不可思议
//Question4
void main()
{
char str[10];
int x = 35;
strcpy(str,"www.it315.org"/*共13个字母*/);
printf("x = %d,strlen(str)=%d,sizeof(str)=%d\n",x,strlen(str),sizeof(str));
}
此时编译无错,但执行出错,但还是能输出x = 35,strlen(str)=13,sizeof(str)=10
所有这些都不太明白,请高手指点,感激不尽!