小编Gor*_*son的帖子

指针和引用之间的低级差异是什么?

如果我们有这个代码:

int foo=100;
int& reference = foo;
int* pointer = &reference;
Run Code Online (Sandbox Code Playgroud)

参考数据和指针数据之间没有实际的二进制差异.(它们都包含记忆中的位置foo)

第2部分

那么指针和引用之间的所有其他差异(这里讨论)会在哪里出现?编译器是执行它们还是它们在可组合级别上实际上是不同类型的变量?换句话说,下面是否生成相同的汇编语言?

foo=100;
int& reference=foo;
reference=5;

foo=100;
int* pointer=&foo;
*pointer=5;
Run Code Online (Sandbox Code Playgroud)

c++ assembly pointers reference

11
推荐指数
2
解决办法
2728
查看次数

C++:为什么我们不能引用引用或引用数组?

我注意到没有引用引用但是有指向指针的指针,并且没有引用数组而是指针数组.

有人能给我任何理由吗?

c++ reference

11
推荐指数
4
解决办法
1738
查看次数

使用core.logic查询族树时消除重复结果

我正在用core.logic建模一个家谱.我想run*查询并让他们返回所有结果而不重复.更换所有defndef tabled给我我所期望的结果(至少目前),我知道conduonceo能减少结果的数量,但我不知道如果任这些都是消除重复的最佳途径.

我特别担心我目前的做法,因为宣布关系和功能似乎是重复的工作.我知道我的一些关系是"相互递归"(mothero并互相womano引用),但我这样做是因为将来我可能会添加一个新的(defrel mother*),这应该可以让它推断出母亲既是父母又是女人.

(defrel man* person)
(defrel woman* person)
(defrel parent* child father)

(fact man* :Father)
(fact woman* :Mother)
(fact man* :Son)
(fact woman* :Daughter)
(fact parent* :Son :Father)
(fact parent* :Son :Mother)
(fact parent* :Daughter :Father)
(fact parent* :Daughter :Mother)

(defn mano [person]
(conde 
    [(man* person)]
    [(fresh [c]
        (fathero c person))]))

(defn womano [person]
(conde
    [(woman* person)]
    [(fresh [c]
        (mothero …
Run Code Online (Sandbox Code Playgroud)

clojure clojure-core.logic

11
推荐指数
1
解决办法
1153
查看次数

将数据放入代码时使用技巧来保存程序员是否可以接受?

示例:在python中键入字符串列表真的很烦人:

["January", "February", "March", "April", ...]
Run Code Online (Sandbox Code Playgroud)

我经常做这样的事情来节省我必须在整个地方键入引号:

"January February March April May June July August ...".split()
Run Code Online (Sandbox Code Playgroud)

那些花了相同的时间,我输入了2个月的数量.另一个例子:

[('a', '9'), ('4', '3'), ('z', 'x')...]
Run Code Online (Sandbox Code Playgroud)

代替:

map(tuple, "a9 43 zx".split())
Run Code Online (Sandbox Code Playgroud)

这花费的时间少得多.

python coding-style

10
推荐指数
4
解决办法
678
查看次数

64位/ 32位的低级优缺点是什么?

我敢肯定我们都听过64bit和32bit的条款,但它们究竟是什么意思?

我很确定它们与内存地址的大小有关.在64位机器上,对象的引用是64位.但我想深入挖掘一下......

  1. 人们经常听到"64位机器"这个短语.计算机的哪一部分实际上是针对位数?处理器?操作系统?

  2. 拥有更大的内存地址有什么好处?

我可以添加更多问题,但我认为简短更好.

谢谢你们:D

64-bit 32-bit 32bit-64bit

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

从用户输入逗号分隔的字符串到数组中删除所有额外空格的最简洁方法是什么

程序让用户在逗号分隔的字符串中键入数组:

basketball, baseball, soccer ,tennis
Run Code Online (Sandbox Code Playgroud)

逗号之间可能有空格,也可能没有.

如果这个字符串只是split()在逗号上,那么数组中的某些项可能在它们之前或之后有空格.

清理这个的最佳方法是什么?

c# regex arrays string

10
推荐指数
2
解决办法
4948
查看次数

与其他.net语言相比,ironpython的速度如何?

我想为我所说的内容提供消息,但我没有它们,这是我听到的.

一旦编程教授告诉我,在某些特定项目中对.net和Python进行了一些软件基准测试,它给出了5:8的关系,支持.NET.这是他支持Python不比.NET慢得多的论点

这就是问题,我想尝试IronPython,因为我可以将我最熟悉的Web框架(asp.net)与我最喜欢的语言(Python)结合起来,我想知道asp.net中程序的速度在Python中使用VB.net或C#的ASP.NET程序的速度.有没有针对此的软件基准测试?

另外,与其他.NET语言相比,IronPython的速度不应该相似,因为IronPython不像Python那样必须编译成.NET中间代码吗?有人可以在这些问题上让我高兴吗?

问候

.net python performance ironpython

10
推荐指数
1
解决办法
6739
查看次数

如果错误的参数数量传入**args,会引发什么异常?

假设在python中你有一个接受三个命名参数的例程(如**args),但是必须填写这三个中的任何两个.如果只填写了一个,那就是错误.如果这三个都是,那就是错误.你会提出什么样的错误?RuntimeError,一个专门创建的异常,还是其他?

python exception

10
推荐指数
2
解决办法
6678
查看次数

如何使用命名上下文查找de Bruijn自由变量索引?

在"类型和编程语言"的6.1.2节中,他们讨论了用于对lambda表达式中的自由变量进行编号的命名上下文.使用示例方案,他们已经提供了,都?x.xb?x.xx都会有自己的德布鲁因表示形式?.00时,他们明显不同的术语.这是如何运作的?

lambda-calculus

10
推荐指数
1
解决办法
1838
查看次数

让Vim仅在插入模式下使用Dvorak键绑定?

当我在Vim中输入时,我想使用Dvorak布局.但是,我希望我的所有快捷方式都保持不变(就像键盘在命令模式下是Qwerty一样).我试过用这个:

set langmap=q',e.,rp,ty,yf,ug,ic,or,pl,[/,]=,aa,so,de,fu,gi,hd,jh,kt,ln,\\;s,'-,z\\;,xq,cj,vk,bx,nb,mm,.v,/z,-[,=],Q\\",W<,E>,RP,TY,YF,UG,IC,OR,PL,{?,}+,AA,SO,DE,FU,GI,HD,JH,KT,LN,:S,"_,Z:,XQ,CJ,VK,BX,NB,MM,<W,>V,?Z      
Run Code Online (Sandbox Code Playgroud)

在插入模式下将我的qwerty键映射到dvorak,但我发现它干扰了我的一些快捷方式.我想在我的操作系统的其余部分(Windows 7)上将键盘映射到qwerty时这样做.我怎样才能用Vim实现这个目标?langmap实际上做了什么?(无法找到文档)

如果键盘在搜索模式下是dvorak会很好,但这更是一个额外的好处.

dvorak vim key-bindings

10
推荐指数
1
解决办法
1738
查看次数