Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 759c77a

Browse files
committed
✨ 포인터 초기화 설명 완료
1 parent cb69661 commit 759c77a

File tree

1 file changed

+44
-3
lines changed

1 file changed

+44
-3
lines changed

‎7-control-flow/README.md‎

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,47 @@ int main() {
334334
}
335335
```
336336

337+
## 포인터 초기화하기
338+
339+
초기화되지 않은 변수는 정의되지 않은 행동을 유발할 수 있기 때문에, 반드시 0 등으로 초기화하는 것이 좋습니다. 지금까지의 예제에선 포인터에 이미 있는 변수나 배열의 주소를 대입하거나, 포인터를 초기화하지 않거나 둘 중 하나였는데요, 포인터도 0으로 초기화하는 것이 좋습니다.
340+
341+
```c
342+
int main()
343+
{
344+
int *i = 0;
345+
}
346+
```
347+
348+
포인터를 0으로 초기화하면 장점이 있는데요, if문 등에서 조건식에 포인터를 사용했을 때, 포인터가 가지고 있는 주소가 0이면 그 조건식이 거짓이 된다는 것입니다. 다음 예제를 봐주세요.
349+
350+
```c
351+
#include <stdio.h>
352+
353+
int main()
354+
{
355+
int *i = 0, j; scanf("%d", &j);
356+
357+
if (j > 10) i = &j;
358+
359+
if (i)
360+
printf("The pointer is pointing to some integer: %d", *i);
361+
else
362+
printf("The pointer is not pointing anywhere");
363+
}
364+
```
365+
```
366+
: 5
367+
The pointer is not pointing anywhere
368+
```
369+
```
370+
: 25
371+
The pointer is pointing to some integer: 25
372+
```
373+
374+
입력받은 값이 10 초과이면 포인터에 `j`의 주소를 대입하는 프로그램입니다. 맨 처음에 `0`으로 초기화되어있었기 때문에, 조건식으로 사용하면 `i`가 어떤 변수를 가리키는지, 안 가리키는지 알 수 있습니다.
375+
376+
> C++에서도 포인터에 0을 대입할 수는 있지만 0을 직접적으로 대입하는 것은 좋지 않은 습관입니다. C++에서 빈 포인터를 초기화하는 방법은 나중에 다루도록 하겠습니다.
377+
337378
## 조건 연산자(conditional operator)
338379

339380
[5장](../5-basic-operators)에서 연산자의 분류에 대해 설명했을 때, 피연산자가 세 개인 `삼항 연산자(ternary operator)`가 있다고 소개했습니다. 지금까지의 연산자는 단항 연산자이거나 이항 연산자였는데요, 삼항 연산자는 딱 하나 존재하는데, 바로 `조건 연산자(conditional operator)`입니다. 조건 연산자는 다음과 같이 씁니다.
@@ -412,8 +453,8 @@ int main()
412453
}
413454
```
414455
```
415-
:5
416-
5 4 3 2 1
456+
:5
457+
5 4 3 2 1
417458
```
418459

419460
`5 4 3 2 1 `이 출력된 과정은 다음과 같습니다.
@@ -497,7 +538,7 @@ do-while문도 C의 반복문 중 하나입니다. do-while문은 다음과 같
497538
do <실행할 문장> while (<조건식>);
498539
```
499540

500-
>> do-while문 끝에 붙어있는 세미콜론에 주의해주세요. 반드시 세미콜론이 붙어야 합니다.
541+
> do-while문 끝에 붙어있는 세미콜론에 주의해주세요. 반드시 세미콜론이 붙어야 합니다.
501542
502543
do-while문은
503544

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /