English 中文(简体)
员额设置增减
原标题:Postfix decrement
  • 时间:2011-10-03 07:43:24
  •  标签:
  • c

我有一个非常简单的问题。

在这一法典中,将何时削减N值?

#include<stdio.h>
void func(int n)
{ 
  //text//
}

int main()
{
  int n=10;
  func(n--);
  return 0;
}

now when func() is called is the value of n decremented when control comes back to main() or is it decremented at that time only but n=10 is passed to func(). Please explain, also if there is a way to check the value then that will be really helpful.

最佳回答

当职能被指定时,所有论点都得到评价(按规定执行顺序),直到职能能够启动——它具有顺序。 因此,在<>

这意味着,对<代码>n-进行评价并产生该功能的价值10。 当该职能开始时,<代码>n已经是9个,但<编码><<>>/代码>该功能的参数为<代码>10。

简单检查:

void func(int n, int *np)
{
    printf("Outside: %d
", *np);
}

int main(void)
{
    /* ... */
    func(n--, &n);
}
问题回答

缩略语将在打电话到func之前实现,但func将再通过旧价值的复印件。

考虑对你的方案作如下修改:

#include <stdio.h>

static int n;

void func(int m)
{
  printf("%d,%d
", n, m);
}

int main()
{
  n = 10;
  func(n--);
  return 0;
}

印刷:

9/10

我认为,本法典更好地表达了你的问题:

#include <stdio.h>

static int global_n;

void func(int n)
{
    printf("n = %d, global_n = %d
",
            n, global_n);
}

int main()
{
   global_n = 10;
   func(global_n--);
   return 0;
}

这表明,这项职能已经达到旧价值,但是在发出呼吁之前,情况有所缓解。

n = 10, global_n = 9




相关问题
Fastest method for running a binary search on a file in C?

For example, let s say I want to find a particular word or number in a file. The contents are in sorted order (obviously). Since I want to run a binary search on the file, it seems like a real waste ...

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

Tips for debugging a made-for-linux application on windows?

I m trying to find the source of a bug I have found in an open-source application. I have managed to get a build up and running on my Windows machine, but I m having trouble finding the spot in the ...

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

Good, free, easy-to-use C graphics libraries? [closed]

I was wondering if there were any good free graphics libraries for C that are easy to use? It s for plotting 2d and 3d graphs and then saving to a file. It s on a Linux system and there s no gnuplot ...

Encoding, decoding an integer to a char array

Please note that this is not homework and i did search before starting this new thread. I got Store an int in a char array? I was looking for an answer but didn t get any satisfactory answer in the ...

热门标签