#include <inttypes.h>
char str3[10] = "Hello, world"; //array size is not enough
printf("%s\n", str3);
결과값
Hello, worHi
질문1: 비쥬얼스튜디오코드를 사용하여 코딩중인데 저는 영상처럼 "Hello, world" 커서를 대었을
때 교수님의 화면처럼 13이 뜨지 않네요 코드라서 안 뜨는 건가요??
저는 (char [10])"Hello, wor" 이런식으로 뜹니다
질문2: "Hello, world";의 위치에 커서를 대었을 때는 (char [10])"Hello, wor" 이런 식으로
미리보기가 뜨는데 왜 미리보기와 다른 Hello, worHi이 출력되는 것이고, 결과값 중의
'Hi'는 왜 출력이 되는 것인가?
질문3: 영상과 달리 제 코드는 어떻게 10으로 정해진 사이즈를 넘어서 출력이 될 수 있는 것인가??
항상 잘 듣고 있습니다 ㅎㅎ 이해하기 쉽게 잘 설명해 주셔서 감사해요
코드 전문
#include <stdio.h>
int main()
{
int a = 1;
int int_arr[10] = { 0, 1, 2, 3, 4, 5, 6 ,7 ,8 ,9 };
printf("%i %i %i\n", int_arr[0], int_arr[1], int_arr[9]);
//printf("%i\n", int_arr[10000]); int_arr[10]이므로 9를 넘어선안됨 [지정사이즈 넘으면 안됨]
char c = 'a';
char str1[10] = "Hello"; //null character Hello(\0)
char str2[10] = { 'H', 'i'}; //문자열 저장하는 방식이 두가지
printf("%c\n", c);
printf("%s\n", str1);
printf("%s\n", str2);
printf("%hhi %hhi %hhi %hhi %hhi\n",
str2[0], str2[1], str2[2], str2[3], str2[4]); //배열로 출력시 강제로 0을 출력시킴
char str3[10] = "Hello, world"; //array size is not enough
char str3[20] = "Hello, \0world";
printf("%s\n", str3);
printf("%s\n", str3[10]);
printf("%s\n", str3[11]);
return 0;
}