为什么例1中第一个print函数中, strlen(str)的值在strcpy(str,"abcde")执行之后没有变为5,在整个printf函数结束之后才变为5,而例2中第一个printf函数中a的值在a=3*4之后变成了12 ?
//printf()里的多个表达式问题
#include<stdio.h>
#include<string.h>
int main()
{
//例1.
char str[10] = "abc";
printf("%s\t%d\n",strcpy(str,"abcde"),strlen(str));
printf("%d\n\n",strlen(str));
//例2.
int a = 2;
printf("%d\t%d\n",a=3*4,a);
printf("%d\n\n",a);
return 0;
}
【运行结果】
abcde 3
5
12 12
12