首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在i,k;k &= i;

在i,k;k &= i;
EN

Stack Overflow用户
提问于 2012-10-17 14:20:33
回答 3查看 226关注 0票数 2

作为一个学习指针的初学者,我写了如下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int i = 1,
    j = 2,
    k;

k &= i;
i = 3;

然而,期望k指向i,我很快就发现错误在于k不是int指针,而只是一个int。但是它为什么会编译并运行呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-17 14:21:42

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
k &= i;

是的缩写

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
k = k & i;

其中&是按位and。它与指针无关。

如果你想让k指向i,你需要让它成为一个指针:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// v
int* k;

并将其指向i

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
k = &i; // NOTE: different from k &= i;
票数 21
EN

Stack Overflow用户

发布于 2012-10-17 14:22:00

&=与k=k& i相同。&是按位AND运算符。

票数 2
EN

Stack Overflow用户

发布于 2012-10-17 14:22:19

k &= i等同于k = k & i,它是一种按位and运算。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12936465

复制
相关文章
个人整理方幂和公式(∑i^k 公式)
有个Oier小学妹问了我一个Σi^k,i<=1e8 ,k<=1e6的问题,我认为这个用伯努利数列可能可以解决他的问题,所以整理了以下文章,给学弟学习学习~~~本人水平有限,也只能帮到这里了吧QAQ~~~ 下面进入正文: 计算∑{i=1,n}i^k 的值需要引入伯努利数列的概念 定义将(B-1)^k展开,然后将B^k写成数列的第k项,即B(k) 当k>=2时,令(B-1)^k展开后的形式(将B^k写成B(k))与B(k)相等 (便于记忆相当于,令(B-1)^k=B^k,然后将B^k写成B(k)求出各个项的值)
Angel_Kitty
2018/04/10
1.2K0
个人整理方幂和公式(∑i^k 公式)
漫画:奇怪,为什么在Java中 2*(i*i) 比 2*i*i 快?
既然我设计的两只小萌宠出场了,也该它们的粑粑出场了,今天这篇文章,我们通过一个故事来深入聊聊 Java 编译背后的秘密。
纯洁的微笑
2019/05/06
8020
漫画:奇怪,为什么在Java中 2*(i*i) 比 2*i*i 快?
面试细节: i = i++和 i = ++i
来源:https://blog.csdn.net/qq_44377709/article/details/106643703
Java小咖秀
2020/07/04
1.9K0
面试细节: i = i++和 i = ++i
你真的了解 i++, ++i 和 i+++++i 以及 i+++i++ 吗?
答案分别为 1,2。对于这个答案我猜大多数人都能答出来。不过 i++ 和 ++i 这两个操作,在内部是如何实现的呢?
好好学java
2019/09/24
1.7K0
你真的了解 i++, ++i 和  i+++++i 以及  i+++i++ 吗?
你真的了解 i++, ++i 和 i+++++i 以及 i+++i++ 吗?
我想大部分都知道 i++ 和 ++i的区别,i++ 就是先拿i来使用,之后再自增加1,而++i则是先自增加1,在拿i来使用,例如对于下面这两个语句,我敢保证大部分人都会做:
帅地
2018/12/18
3K0
终于弄明白 i = i++和 i = ++i 了
结果:i在局部变量表中变成了2,操作数栈中的 i 值为1,并且将 i 的值返回给 j,即此条语句以后,i = 2,j = 1
好好学java
2020/10/27
1.2K0
终于弄明白 i = i++和 i = ++i 了
mac 上学习k8s系列(29)prometheus part I
: https://github.com/prometheus/prometheus是CNCF毕业的项目,是非常流行监控程序,Prometheus属于是典型的有状态应用,而其有包含了一些自身特有的运维管理和配置管理方式。而这些都无法通过Kubernetes原生提供的应用管理概念实现自动化。CoreOS率先引入了Operator的概念,并且首先推出了针对在Kubernetes下运行和管理Etcd的Etcd Operator。并随后推出了Prometheus Operator。用ConfigMap管理Prometheus配置文件。
golangLeetcode
2022/08/02
3170
mac 上学习k8s系列(29)prometheus part I
mac 上学习k8s系列(18)CRD (part I)
在不同应用业务环境下,对于平台可能有一些特殊的需求,这些需求可以抽象为 Kubernetes 的扩展资源,而 Kubernetes 的 CRD (CustomResourceDefinition)为这样的需求提供了轻量级的机制,保证新的资源的快速注册和使用。
golangLeetcode
2022/08/02
5390
mac 上学习k8s系列(31)istio part I
Istio 提供一种简单的方式来为已部署的服务建立网络, Istio 使用 Envoy 代理的扩展版本, Envoy 被部署为 sidecar,和对应服务在同一个 Kubernetes pod 中。下面我们开始在mac m1环境搭建istio。
golangLeetcode
2022/08/02
2500
(i++)+(++i)+(++i)+(++j)+(j++)问题
用 GNU GCC 编译器得出的结果是 7,,当不用volatile修饰变量时得到的结果是8,,
ke1th
2019/05/29
1.5K0
mac 上学习k8s系列(34)knative part I
knative是google基于k8s crd打造的serverless平台,knative 把整个系统分成了三个部分:
golangLeetcode
2022/08/02
3020
【答疑解惑】i++,++i,i+=的区别
说起这个i++, ++i 入门练习都会搞这个,一如既往,百试不爽。 表达式 a = i++; 它等价于 a = i ; i = i + 1; 表达式 a = ++i 它等价于 i = i + 1; a = i; 1、 首先两者的区别是:前者是先赋值,然后再自增;后者是先自增,后赋值 2、 ++i 和i++ 的使用,一般来说在循环域里面,这两者并没有什么很大的区别,因为编译器一般都会给你做优化。但是要注意其生存周期,我们要注意i值在程序流中的变化,如果是for、while循环判断中要特别注意++i的
程序员互动联盟
2018/03/13
1.8K0
为什么 2 * (i * i) 比 2 * i * i 效率高?
但如果我把其中的 2 * (i * i) 换成 2 * i * i,程序的平均完成时间就在 0.60s 到 0.65s 之间,这是什么原因导致的呢?
村雨遥
2022/06/15
2K0
为什么编程里习惯使用 i、j、k 等作为循环变量?
i 可能是 integer 的简写,或者是 int 的简写。有人说是 iterator 的简写,这个有点牵强。早期教材中的示例都是以 i、k、j 作为循环变量,后来这样使用成为了一种习惯。
LIYI
2022/11/18
1.1K0
面试官:i = i++和 i = ++i 的有什么区别?
出处:blog.csdn.net/qq_44377709/article/details/106643703
开发者技术前线
2020/11/24
1.2K0
面试官:i = i++和 i = ++i 的有什么区别?
I + I2C = I3C:这个附加的“I”是什么?
目前随着手机等移动设备包含的sensor越来越多,传统应用在sensor上的I2C/SPI接口的局限性也越来越明显,典型的缺陷如下:
碎碎思
2021/11/26
2.4K0
mac 上学习k8s系列(17)rbac 源码学习(part I)
整理了下k8s 源码的核心数据结构,类图如上,可以看到核心就是Role和RoleBinding,对应到资源文件如下
golangLeetcode
2022/08/02
3390
mac 上学习k8s系列(17)rbac 源码学习(part I)
java中i=i++问题分析
程序的执行顺序是这样的:因为++在后面,所以先使用i,“使用”的含义就是i++这个表达式的值是0,但是并没有做赋值操作,它在整个语句的最后才做赋值,也就是说在做了++操作后再赋值的,所以最终结果还是0
哲洛不闹
2018/09/14
8460
java中i=i++问题分析
java中i=i++问题分析
程序的执行顺序是这样的:因为++在后面,所以先使用i,“使用”的含义就是i++这个表达式的值是0,但是并没有做赋值操作,它在整个语句的最后才做赋值,也就是说在做了++操作后再赋值的,所以最终结果还是0
哲洛不闹
2018/09/19
8200
java中i=i++问题分析
java中 i = i++和 j = i++ 的区别
  由于i++和i--的使用会导致值的改变,所以在处理后置的++和--的时候,java的编译器会重新为变量分配一块新的内存空间,用来存放原来的值, 而完成赋值运算之后,这块内存会被释放。 (1)对于j
Mister24
2018/05/14
1.4K0

相似问题

如何将Coq中的“i: nat I<S k -> H”分解为“i<k和i=k`”?

12

如何用Numpy/Theano表示c[i,j,k] = a[i,j] * b[i,k]?

12

在数组声明int[] k,i和int k[]中,i;

25

是否有result[i] += A[k] * sin(B[k] * C[i] + D[k])的内在指令?

12

检查整数数组是否包含整数a[i],使得a[i] = a[j]+a[k],其中j,k<i和j!=k

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文