标签: comma

Why is the return value of the fun function 8 instead of 7?

With reference to Comma-Separated return arguments in C function [duplicate] ,

x=x+2,x+1;
Run Code Online (Sandbox Code Playgroud)

will be evaluated as

x=x+2; 
Run Code Online (Sandbox Code Playgroud)

However, in case of the following code

#include<stdlib.h>
#include<stdio.h>

int fun(int x)
{
    return (x=x+2,x+1); //[A]
}

int main()
{
   int x=5;
   x=fun(x);
   printf("%d",x); // Output is 8
}
Run Code Online (Sandbox Code Playgroud)

Shouldn't line [A],be evaluated as

x=x+2;
Run Code Online (Sandbox Code Playgroud)

giving x = 7

c return-value comma

35
推荐指数
4
解决办法
2740
查看次数

这种","运算符的使用是否被视为不良形式?

我已经创建了一个列表类作为替换我的程序中的可变参数函数的方法,该程序用于初始化需要包含更改的元素列表的对象.list类有一个我非常喜欢的用法语法.但是我之前没有看过它,所以我想知道我是不是因为这个事实而不应该使用它?列表类的基本实现看起来像这样......

#include <list>
#include <iostream>
template<typename T>
struct list
{
    std::list<T> items;
    list(const list&ref):items(ref.items){}
    list(){}
    list(T var){items.push_back(var);}
    list& operator,(list add_){
        items.insert(items.end(),add_.items.begin(), add_.items.end());
        return *this;
    }
    list& operator=(list add_){
        items.clear();
        items.insert(items.end(),add_.items.begin(), add_.items.end());
        return *this;
    }
    list& operator+=(list add_){
        items.insert(items.end(),add_.items.begin(), add_.items.end());
        return *this;
    }
};
Run Code Online (Sandbox Code Playgroud)

这允许我在代码中使用它,如此...

struct music{
//...
};
struct music_playlist{
    list<music> queue;
//...
};
int main (int argc, const char * argv[])
{
    music_playlist playlist;
    music song1;
    music song2;
    music song3;
    music song4;
    playlist.queue = song1,song2; // The queue now …
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading comma

28
推荐指数
6
解决办法
1697
查看次数

Python的逗号运算符在赋值期间如何工作?

我正在阅读Python文档中的赋值语句(http://docs.python.org/reference/simple_stmts.html#assignment-statements).

因此引用:

如果目标是括在括号中或方括号中的目标列表:对象必须是与目标列表中的目标具有相同数量的项目的可迭代对象,并且其项目从左到右分配给相应的目标.

读完之后,我想写一个这样的样本:

a = 5
b = 4
a, b = a + b, a
print a, b
Run Code Online (Sandbox Code Playgroud)

我的假设是a和b都应该具有9的值.

但是,我被证明是错的.'a'的值为9,'b'的值为5.

有人可以帮助我更好地理解这一点吗?为什么要分配旧值'a'而不是新值?根据文档,首先会分配一个值?我错过了什么吗?

python tuples comma variable-assignment

27
推荐指数
3
解决办法
2万
查看次数

把手,空白控制

我想要精确控制空白,但仍然有可读的模板.

只是想通过简单的用例来看看其他人的解决方案.

{{name}}
{{#if age}}
  , {{age}}
{{/if}}

# outputs {{name}} , {{age}}
# desire: {{name}}, {{age}}
Run Code Online (Sandbox Code Playgroud)

https://github.com/wycats/handlebars.js/issues/479 - 提交了一张已关闭的门票.

whitespace space comma handlebars.js

24
推荐指数
2
解决办法
2万
查看次数

变量列表中的逗号是序列点吗?

在下面的代码类型中,每个变量构造之间是否有一个序列点,或者结果是否未定义?

int a = 0;
int b = a++, c = a++;
Run Code Online (Sandbox Code Playgroud)

我无法在标准中找到这里对序列点的具体引用.这是否意味着它是未定义的,或者只是我在搜索中失败了?表达式的完成是一个序列点,但上面的初始化也算了吗?

c++ variables comma sequence-points

21
推荐指数
2
解决办法
1230
查看次数

D3删除数千个逗号分隔符

我有一个带有3列的.json,其中一列是'Year'.该列仅包含年份.没有约会!

当我在"x"轴上绘制图形时,年份会出现数千个逗号分隔符.

所以在.json中,日期是这样的格式:"年":1990年,在'x'轴上它的出现就像那样1,990

我一直试图弄清楚如何解析这一年,但到目前为止我没有运气.我尝试过以下方法:

var parseDate = d3.time.format("%y").parse

var x = d3.time.scale()
.range([0, width]);

//further down

d3.json("waterData.json", function(error, json) {

// Attach Data
var data = json.data;

// Select Data for X and Y
var axis1 = 'Year'; 
var axis2 = 'Ratio'

// Convert String into Numbers
data.forEach(function(d) {

///axis1 = parseDate(axis1);

d[axis1] = +d[axis1]
d[axis2] = +d[axis2]
});

 x.domain(d3.extent(data, function(d) { return d[axis1]; }));
 y.domain(d3.extent(data, function(d) { return d[axis2]; }));


 svg.append("g")
  .attr("class", "x axis")
  .attr("transform", "translate(0," + (height+10) + …
Run Code Online (Sandbox Code Playgroud)

time parsing comma delimiter d3.js

21
推荐指数
1
解决办法
8912
查看次数

C语言中循环条件下的逗号运算符

    #include<stdio.h>
    main()
    {
        int i;
        for(i=0;i<0,5;i++)
        printf("%d\n",i);
    }
Run Code Online (Sandbox Code Playgroud)

我只想在for循环的条件下解释"i <0,5".

即使我把它设为"i> 0,5",我们也得到相同的输出.

有人可以解释一下这种情况是如何起作用的.(使用逗号运算符的条件,我已经搜索过http://en.wikipedia.org/wiki/Comma_o​​perator但根本没有帮助)

c comma

19
推荐指数
2
解决办法
7434
查看次数

逗号分隔的值列表用括号括起来在C中表示什么?a =(1,2,3);

我刚刚遇到了基本上执行以下操作的代码:

int a = (1, 2, 3);
Run Code Online (Sandbox Code Playgroud)

我以前从未见过这种表示法.这是什么意思?

c c++ comma

19
推荐指数
4
解决办法
2173
查看次数

使用两个反引号和逗号,Common Lisp

我正在学习常见的lisp,我在理解两个反引号和两个逗号的用法时遇到问题:

``(a ,,(+ 1 2))
Run Code Online (Sandbox Code Playgroud)

我的意思是,我不知道为什么它被评估为:

`(A ,3)
Run Code Online (Sandbox Code Playgroud)

而不是像这样的东西:

`(A 3)
Run Code Online (Sandbox Code Playgroud)

我在解释自己,为了评估表格前面的两个反引号,两个逗号都被"消耗",所以没有一个逗号应该离开,但还有一个.看起来怎么样

``(a ,,(+ 1 2))
Run Code Online (Sandbox Code Playgroud)

仅使用列表和'?

syntax list common-lisp comma

18
推荐指数
1
解决办法
4064
查看次数

拆分逗号分隔字符串 - > FUNCTION db.CHARINDEX不存在

我需要将逗号分隔的字符串拆分为第二列,我有下表:

CL1     POS                 POS2     LENGHT     ALLELE
1       3015108,3015109              5          A
2       3015110,3015200              10         B
3       3015200,3015300              15         C
4       3015450,3015500              20         D
5       3015600,3015700              15         E
Run Code Online (Sandbox Code Playgroud)

我想把逗号后面的数字分成第二列POS2所以它应该是那样的

CL1     POS                 POS2     LENGHT     ALLELE
1       3015108             3015109  5          A
2       3015110             3015200  10         B
3       3015200             3015300  15         C
4       3015450             3015500  20         D
5       3015600             3015700  15         E
Run Code Online (Sandbox Code Playgroud)

所以我查询了以下内容:

INSERT INTO MyTable (POS2)
SELECT RIGHT(POS, CHARINDEX(',', POS) + 1 ) FROM MyTable ;


 It returns an error : 
 ERROR 1305 (42000): …
Run Code Online (Sandbox Code Playgroud)

mysql string split function comma

18
推荐指数
1
解决办法
4万
查看次数