⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 例8.4.txt

📁 谭浩强的C语言书中的代码
💻 TXT
字号:
  例8.4
main()
       {int i=2,p;
         p=f(i,++i); /*  函数调用 */
         printf("%d",p);
       int f(int a,int b)     /*  函数定义 */
     {int c;
         if(a>b) c=1;
         else if(a==b) c=0;
         else c=-1;
         return(c);
       }
  在Turbo C系统上运行的结果如下:
0
  如果按自左至右顺序求实参的值,则函数调用相当于f(2,3),程序运行应得结果为“-1”。若按自右至左顺序求实参的值,则它相当于f(3,3),程序运行结果为“0”。读者可以在所用的计算机系统上试一下,以便知道它所处理的方法。由于存在上述情况,使程序通用性受到影响。因此应当避免这种容易引起不同理解的情况。如果本意是按自左而右顺序求实参的值,可以改写为
j=i;
k=++i;
p=f(j,k);
如果本意是自右而左求实参的值,可改写为
j=++i;
p=f(j,j);
这种情况在printf函数中也同样存在,如
printf("%d,%d",i,i++);
也发生上述同样的问题,若i的原值为3,在Turbo C上运行结果为4,3。请读者务必注意,应该避免这种容易混淆的用法。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -