을 K, 나는 그러나, 곧 실수가 k
가 int
포인터, 단지 int
되지 있다는 것을 발견, i
를 가리 키도록 k
을 기대실제로 int i, k가 발생합니다. 초보자 학습 포인터로 &= i;
int i = 1,
j = 2,
k;
k &= i;
i = 3;
같은 것을 썼다. 그러나 그것은 왜 컴파일되고 실행됩니까?
을 K, 나는 그러나, 곧 실수가 k
가 int
포인터, 단지 int
되지 있다는 것을 발견, i
를 가리 키도록 k
을 기대실제로 int i, k가 발생합니다. 초보자 학습 포인터로 &= i;
int i = 1,
j = 2,
k;
k &= i;
i = 3;
같은 것을 썼다. 그러나 그것은 왜 컴파일되고 실행됩니까?
k &= i;
&
는이 비트 and
이다
k = k & i;
대한 약칭이다. 그것은 포인터와 아무 관련이 없습니다. 당신이 i
를 가리 키도록 k
를 확인하려면
, 당신은 그것에게 포인터를 확인해야합니다 :
// v
int* k;
을하고는 i
를 가리 만들 :
k = &i; // NOTE: different from k &= i;
+1 좋은 캐치 !! – Ankush
+1 빠르고 더 완벽합니다. –
&는 =은 IS k = k와 동일 & i. &은 비트 AND 연산자입니다.
k &= i
은 비트와 연산 인 k = k & i
과 동일합니다.
http://msdn.microsoft.com/en-us/library/5bk6ya5x(v=vs.71).aspx – Dan
나는'k & = i'를'k = & i'라고 읽었을 것이라고 생각합니다. 그것들은 매우 다르며, 'i- = 1'과 'i = -1'보다 훨씬 다릅니다. – hvd