代码之家  ›  专栏  ›  技术社区  ›  Alex

C:在单个语句中为多个变量分配相同的值

c#
  •  133
  • Alex  · 技术社区  · 16 年前

    在C中是否有任何方法(只是出于好奇,因为我今天遇到了多个相同的变量赋值)可以在一个语句中一次将一个值赋给多个变量?

    沿着这些线的东西(伪代码):

    int num1 = 1;
    int num2 = 1;
    
    num1 & num2 = 5;
    

    可能不是,但我认为这是值得问的,以防类似的事情实际上是可能的!

    10 回复  |  直到 7 年前
        1
  •  219
  •   Pierre-Alain Vigeant    10 年前

    它很简单:

    num1 = num2 = 5;
    

    当使用对象属性而不是变量时,了解 get 未调用中间值的访问器。只有 set 对分配序列中访问的所有属性调用访问器。

    例如,每当 得到 设置 调用访问器。

    static void Main(string[] args)
    {
        var accessorSource = new AccessorTest(5);
        var accessor1 = new AccessorTest();
        var accessor2 = new AccessorTest();
    
        accessor1.Value = accessor2.Value = accessorSource.Value;
    
        Console.ReadLine();
    }
    
    public class AccessorTest
    {
        public AccessorTest(int value = default(int))
        {
            _Value = value;
        }
    
        private int _Value;
    
        public int Value
        {
            get
            {
                Console.WriteLine("AccessorTest.Value.get {0}", _Value);
                return _Value;
            }
            set
            {
                Console.WriteLine("AccessorTest.Value.set {0}", value);
                _Value = value;
            }
        }
    }
    

    这将输出

    AccessorTest.Value.get 5
    AccessorTest.Value.set 5
    AccessorTest.Value.set 5
    

    这意味着编译器将为所有属性分配该值,并且不会在每次分配该值时重新读取该值。

        2
  •  51
  •   aaronb    16 年前

    这将是您想要的:

    int num1, num2;
    num1 = num2 = 5;
    

    “num2=5”赋值将返回赋值。

    这可以让你做一些疯狂的事情,比如 num1 = (num2 = 5) +3; 它将把8分配给num1,尽管我不建议这样做,因为它不太可读。

        3
  •  28
  •   wonea Ilya Smagin    10 年前
    int num1=5,num2=5
    

    在同一语句中声明和分配变量。

        4
  •  11
  •   SLaks    16 年前

    试试这个:

    num1 = num2 = 5;
    

    请注意,这在VB中不起作用。

        5
  •  7
  •   Daniel    16 年前

    数字1=数字2=5

        6
  •  5
  •   LukeH    16 年前
    int num1, num2, num3;
    
    num1 = num2 = num3 = 5;
    
    Console.WriteLine(num1 + "=" + num2 + "=" + num3);    // 5=5=5
    
        7
  •  5
  •   Rohan West    16 年前

    像这样。

    num1 = num2 = 5
    
        8
  •  4
  •   Druid    16 年前

    你的例子是:

    int num1 = 1;
    int num2 = 1;
    
    num1 = num2 = 5;
    
        9
  •  4
  •   abuss    9 年前

    在句法上稍短一点,但采用了其他人已经说过的话。

    int num1, num2 = num1 = 1;
    
        10
  •  1
  •   Sanjay Kumaar    8 年前

    这很简单。

    int num1,num2;
    num1 = num2 = 5;