C语言
main() {int x=1,y=1,z=1,t; t=++x||++y&&++z; printf("%d%d%d%d",x,y,z,t);} 运行结果为什么是2111.。。请高手分析一下。。
上述表示式++y&&++z不会执行,所以y、z的值仍是1,t是整个逻辑表达式++x||++y&&++z的值,结果是1,也就是逻辑真,++x会执行,所x=2,这样printf("%d%d%d%d",x,y,z,t)结果就是2111。 为什么++y&&++z不会执行? 因为在++x||++y&&++z这个表达式中包含||运算,在有||的表达式中遇到第一个逻辑为真的值时就不再计算后面的表达式了,也没有必要再计算了,这个其实很好理解,因为逻辑或的特点是只要一个值为真整个表达式都为真,后面再多真真加假也无所谓了,也没有必要再计算了。 如果把x改为x=-1,你试试,结果是0221。 祝你成功,不明白可以给我留言。
这种语句你编程编到老也不会去写的.. 研究它没有意义.. 说实话根本没有一个程序员会去写这样的语句
答:D是错的 Fun(n,&a[9]); 第二个参数传入的是指针 ABC第二个参数都是指针 而D不是 是一个引用变量详情>>
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>