<첫번째 질문>
for문에서 변수의 초기값을 생성하지 않아도 될까요?
실행은 되긴 하지만 안 된다는 글을 본 기억이 있어서 잘 모르겠어요 ㅠㅠ
예를 들어
```
int i;
for( i; i<=9; i++) // 이런식으로 i의 초기값을 안 쓰면 안 되는 건 가요?
```
<두번째 질문>
변수를 선언한 후 값을 지정하지 않으면 그 변수에는 어떤 값이 들어있나요?
예를 들어
```
int sum; // 변수 값을 지정하지 않은 상태에서 sum이라는 변수 안 에 어떤 값이 들어있나요?
```
(저는 실행하면서 1이 들어가 있었는데 어떤 경우는 안 그러고...)
쓰레기값이 들어 있는 걸까요?
<세번째 질문>
```
void f() {
printf("%d", 123); <------- 이부분에서 printf("%d", 123);랑 printf("123");가 둘 다 123으로 출력되는데 왜 printf("%d", 123);를 사용하나요?
return;
}
```
<네번째 질문>
```
char a[ ] = "candy"; // 이떄는 큰따옴표(")를 사용하고
while(a == 'candy') // 이때는 작은따옴표(')를 사용하는 것 같습니다.
```
어떨때 작은 따옴표를 쓰고 어떨때 큰 따옴표를 쓰는건 가요?
---------------------------------------------------------------------------------------------------------
공부하다 보니 사소한 궁금증이 생겨서 이렇게 물어봅니다.
질문이 너무 많은 듯 하네요...
항상 잘 이해되게 설명해주셔서 늘 감사합니다.
더 열심히 하겠습니다 ㅎㅎ
감사합니다!
sehongpark님의 답변
# 01, 02 초기값 관련 답변
언어에 따라 변수의 초기값은, 고정 값 또는 쓰레기 값일 수도 있습니다.
따라서, *반드시 초기값을 설정하셔야 합니다.*
# 03 printf() 관련 답변
`printf()` 메소드는 기본적으로 결과 값을 문자열로 변환하여 출력합니다.
따라서, 아래 코드의 결과는 같습니다.
```
int num = 123;
char* str = "123";
printf("%d", num); // 정수 123을 문자열로 변환 출력 => "123"
printf("%d", str); // 문자열 "123"을 그대로 출력 => "123"
```
차이는, 출력 되기 이전 값을 컴퓨터가 무엇으로 인식하느냐입니다.
# 04 큰 따옴표 vs 작은 따옴표
C언어에서, 큰 따옴표의 경우 *문자열*을, 작은 따옴표의 경우 *단일 문자*를 나타냅니다.