월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결홍정모의 따라하며 배우는 C언어
인자 인수 매개변수
인자란게 인터넷에서 찾아봤을 때 글마다 의미가 다른데 인자는 어떤 건가요
- 미해결홍정모의 따라하며 배우는 C언어
배열의 subscript(index)는 0보다 커야 한다?
realm과 realm_tax 변수를 배열로 만들었고, 배열로 만들어진 각각의 공간에 일일히 데이터를 지정해뒀더니, int realm[10]에 딸려있는 realm[0]에 오류가 나더군요. 오류내용은 제목과 같이 "배열의 사이즈는 0보다 커야 한다." 였습니다. realm[0]에 커서를 대어보니 error-type이란 정보를 볼 수 있었습니다. 이거 어떻게 해야 오류를 내지 않수 있나요?
- 미해결홍정모의 따라하며 배우는 C언어
10분 15초경 질문
dest = "Start something"; // Error여기서 에러가 생기는 이유를 잘 모르겠어서 찾아보니 같은 질문이 있길래 답변을 봤습니다.https://www.inflearn.com/questions/684074답변을 보고 컴파일러가 안 해주도록 만들어진 거고 그 이유는 런타임에 내용을 바꾸고 싶다면한 글자씩 바꾸는 방식으로 사용하도록 의도적으로 그렇게 정해 놨기 때문이라고 답변해주신 건 이해가 됬습니다.그런데그렇다고 안해주는 이유가 아예 없는 것은 아닌데 "Start something" 같은 문자열은 컴파일 할 때 프로그램에 탑재됩니다라는 말씀이 이해가 잘 안됩니다.문자열이 컴파일할 때 프로그램에 탑재되는 거랑 컴파일 타임이 아니라 런타임에 내용을 바꾸고 싶다면한 글자씩 바꾸라고 의도적으로 정해 놓은 거랑 무슨 상관인지 모르겠습니다.답변 항상 감사합니다.
- 미해결홍정모의 따라하며 배우는 C언어
이거 왜 질문이 두번씩 뜰까요
int main() { int c = 0; char z; while (1) { printf("Enter the letter of your choice : \na. averngers b. beep\nc. count q. quit\n"); z = getchar(); if (z == 'a') printf("Avengers assemble!\n"); else if (z == 'b') printf("\a"); else if (z == 'c') { printf("Enter an integer : "); scanf("%d", &c); for (int i = 1; c >= i; ++i) printf("%d\n", i); } else if (z == 'q') break; } return 0; } 왜 질문이 2번씩 나올까요
- 해결됨홍정모의 따라하며 배우는 C언어
문자열 크기와 null character 위치.
안녕하세요,문자열(문자형 배열)을 정의할때, 문자열 리터럴의 크기와 문자형 배열의 size가 같으면 null character가 붙지 않는 것 같은데 이 경우 왜 붙지 않는지 궁금합니다. 그림 처럼 디버거로 찍어보고 null character가 붙지 않는다고 판단했습니다.그리고 추가로, 출력했을 때 하기 그림처럼 이상한 한자가 나오는 이유는 printf 가 문자열을 출력하다가 null character를 만나지 못해 메모리의 엉뚱한 곳에 저장되어있는 쓰레기 값을 읽어오다가 컴파일러가 멈췄다 라고 이해하면 될까요?마지막으로, 그렇다면 char 형 배열을 선언할 시 리터럴의 크기보다 1만큼 크게 해줘야 하는지 궁금합니다.null character가 printf() 함수 사용시 용의성을 위해 문자열끝에 붙여지는 것이라면, 바꿔말하면 printf 를 사용하지 않을거라면 굳이 필요없으니까 제가 한것처럼 배열 크기와 리터럴 크기를 일치시키는게 좋을 것 같은데 맞게 생각했는지 궁금하니다.
- 미해결홍정모의 따라하며 배우는 C언어
초기화
int_arr[10]={0,1,2,3,4,5,6,7,8,9}; 에서 배열을 초기화 했다는 것이 이해가 되지 않습니다
- 미해결홍정모의 따라하며 배우는 C언어
24분 20초경 25분 5초경 질문
24분 20초경에char str1[6], str2[6];int count = scanf("%6s %6s", str1, str2); // run-time error위의 코드를 실행시키면 런타임 에러가 발생하는데 그 이유가 궁금합니다.교수님이 설명을 안하고 넘어가셔서 이걸 어떻게 이해해야 할지 모르겠어요.그리고 25분 5초경에int count = scanf_s("%5s %5s", str1, 6, str2, 6);5자리에 있는 숫자와 6자리에 있는 숫자가 달라도 괜찮은 건가요?이것도 설명이 없어서 어떻게 이해해야 할지 모르겠네요
- 미해결홍정모의 따라하며 배우는 C언어
float f5, double d5
16진수 0x1.1p1에서 0xb.ap1로 바뀌는 게 대응하는 문자라서 그런 건가요? 같은 1인데 왜 바뀌는 문자가 다른지 모르겠어요.f5와 d5를 출력할 때 %a는 정수 출력할 때 %d와 똑같은 역할인가요?그리고 f5와 d5를 출력했을 때 나오는 수를 어떻게 해석하는 건지 잘 모르겠습니다.
- 미해결홍정모의 따라하며 배우는 C언어
7.8 4분26초에 !line_flag가 트루가 아니라면 이라고 하는데
맨 앞에서 이미 bool line_flag = false; 라고 대입 했으면!line_flag는 ! false여서 거짓이 아니라면 이라고 해야 되는 거 아닌가요??
- 해결됨홍정모의 따라하며 배우는 C언어
scanf 질문
질문1. float d = 0.00; scanf("%f", &d);일 때 사용자가 데이터를 입력하면, 데이터가 입력버퍼로 이동한다scanf는 입력버퍼에서 데이터를 읽어들일 때 형식지정자가 %f 이므로 float형으로 데이터를 변환한다%f와 저장할 변수의 타입이 일치므로 float형 변수 d의 메모리 공간에 데이터를 저장한다성공적으로 입력받은 아이템의 개수 1을 반환한다scanf가 이 과정대로 동작하는지 궁금합니다---------------------------------------------------------------질문2. 위 과정이 맞다면 double d = 0.00; scanf("%f", &d); printf("%f", d); 에서 사용자가 3.14를 입력하면3.14가 입력버퍼로 이동한다입력버퍼에서 3.14를 읽어들일 때 %f로 변환한다%f와 저장할 변수의 타입이 일치하지 않으므로 double형 변수 d의 메모리 공간에 저장하지 못한다성공적으로 입력받은 아이템의 개수가 없으므로 0을 반환한다이렇기 때문에 실행하고 어떠한 값을 입력하더라도 초기값인 0.000000이 출력되는 건가요?---------------------------------------------------------------질문3. unsigned ui; scanf("%i", &ui); printf("%i", ui); %i는 signed int 타입 변수의 형식지정자로, unsigned int형 변수 ui와 다른게 맞나요? 근데 사용자가 -123을 입력하면 어떻게 변수 ui의 메모리 공간에 -123을 저장해서 그것을 출력할 수 있는지 궁금합니다
- 미해결홍정모의 따라하며 배우는 C언어
실행 파일이 안만들어져요..ㅠㅠ
분명히 똑같이 파일경로 찾아서 환경변수 안 패스에 잘 넣고 했는데.. exe 파일 자체가 뜨질 않습니다.. 잘못된 점이 있나요?
- 미해결홍정모의 따라하며 배우는 C언어
2의 보수 방법에서 양수표현법
강의에서 설명해주신 2의 보수 방법에서, 양수를 표현하는 방법에 관해 질문이 있습니다. 강의에서 -5를 예로 드신 건 이해했는데, 반대로 5를 표현하려 할 때는 어떻게 되나요?5를 2진수로 변환->00000101(2)->보수:11111010(2)->더하기 1: 11111011(2)인데, 그럼 양수 5와 음수 -5의 구분이 안 되지 않나요?강의에서 첫 비트가 1이면 음수, 0이면 양수인 것으로 구분한다고 하셨는데, 8개 비트 앞에 부호에 해당하는 1비트를 더 둔다는 뜻인가요? 그러니까, (1/11111011->-5, 0/11111011->5) 이런 식으로 작동하는 건가요?좋은 강의 감사합니다.
- 미해결홍정모의 따라하며 배우는 C언어
프로그램 작성 중에 scanf 값을 따로 안써도 되는지에 대해
교수님께서 작성하신 강의답안에서 질문이 있습니다. 보면 scanf함수를 따로 쓰지 않고 status = scanf("%d", &num);만 입력하셨는데 이렇게 적어도 scanf함수가 동작하는 이유가 궁금합니다. 또, 이 윗줄 바로 위에 scanf함수를 따로 실행해도 상관없는지도 궁금합니다.
- 미해결홍정모의 따라하며 배우는 C언어
6.15초반 예제 scnaf 사용해서 만들면 어케 만들어야 될까요
저렇게 처음과 끝이 정해져 있는 게 아니라 scanf써서 사용자가 시작할 처음 단어와 몇 개까지 갈지, 몇 줄만들지 이런거요
- 해결됨홍정모의 따라하며 배우는 C언어
13분 03초, 39번째 줄 i =1이 왜
출력이 0으로 나오는건가요..? l은 2가 되는게 납득이 갑니다만 40번째 줄에서 i가 1이 감소하는 건가요??
- 미해결홍정모의 따라하며 배우는 C언어
15분경 질문
scanf 함수가 i의 값을 바꾼다고 하셨는데 그러면 처음에 i=0으로 정의가 됐다가 scanf 함수를 통과하면서 i가 바뀐다는 뜻인가요? 만약 그렇다면 뭐로 바뀌는지는 어떻게 아는 건가요?
- 미해결홍정모의 따라하며 배우는 C언어
Scanf 함수가 이상한 값을 내놓습니다.
end 변수에 K를 입력하니 K의 아스키 코드인 75가 안 나오고 -52가 뜹니다 ㅠㅠ
- 미해결홍정모의 따라하며 배우는 C언어
while(getchar() != '\n') continue;의 원리
while(getchar() != '\n') continue;가 입력 버퍼에 남아있는 개행문자들을 모두 읽어들이며 입력 버퍼를 클리어해주는 것이라고 알고 있는데 왜 그런지 원리를잘 모르겠어요getchar()에 들어가는 값이 줄바꿈 값이 아니면 다시 반복문으로 돌아가고, 줄바꿈이면 계속 한다는 뜻인 저while(getchar() != '\n') continue; 라는 코드가 어떻게 그런 기능을 하는 건가요?
- 미해결홍정모의 따라하며 배우는 C언어
내가 원하는 알파벳까지 출력하기
교수님께서 내신 문제 해설을 듣기 전 작성한 코드입니다. For 문 대신 while을 이용했는데요. 프롬포트 창에서는 컴파일러가 repeat 함수를 만난 이후부터는 진행되지 않습니다. 뭐가 문제인지 봐주실 수 있나요
- 해결됨홍정모의 따라하며 배우는 C언어
15.12강 질문이 있습니다.
#include <stdio.h> #include <stdalign.h> int main(void) { printf("Alignment of char = %zu\n\n", alignof(char)); char ca; printf("&ca : %p %lld\n", &ca, ((long long)&ca) % 8); printf("&ca : %p %lld\n", &ca, ((long long)&ca) % 16); printf("\n"); char _Alignas(int) cb; printf("&cb : %p %lld\n", &cb, ((long long)&cb) % 8); printf("&cb : %p %lld\n", &cb, ((long long)&cb) % 16); printf("\n"); char alignas(8) cc; printf("&cc : %p %lld\n", &cc, ((long long)&cc) % 8); printf("&cc : %p %lld\n", &cc, ((long long)&cc) % 16); return 0; } [결과]alignas(n)를 지정하면 주소가 n의 배수인 메모리 위치에 객체를 할당하도록 하는 것은 이해했습니다. 첫 번째 줄의 출력에서 따로 정렬을 지정하지 않은 ca는 정렬 값이 1인 것은 확인했습니다.그러면 ca의 주소를 8, 16으로 나눈 나머지가 1이므로&ca : 00000097AA4FF614 1&ca : 00000097AA4FF614 1형태의 출력이 나와야 할 것 같은데왜 4바이트로 정렬을 지정한 cb와 결과가 같은 것인지 잘 모르겠습니다..