월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결홍정모의 따라하며 배우는 C언어
6:11 ) 궁금합니다 .else if 대신에 if로 바꾸면
int main() { int ch; while ((ch = getchar()) != '\n') { if (islower(ch)) ch = toupper(ch); if (isupper(ch)) ch = tolower(ch); putchar(ch); } putchar(ch); return 0; else if 대신에 if로 바꿔서 둘다 if문으로 실행시에 소문자를 대문자로 변경시켜주는 코드만 실행이 안되고 대문자는 소문자로 잘 변경시켜주는데 왜그런가요??else if 대신에 if를 써도 되는거 아니였나요?? 궁금합니다..
- 미해결홍정모의 따라하며 배우는 C언어
항상 좋은 강의 감사합니다!
키워드와 예약어의 차이가 오랜시간 살아 남은 친구들은 키워드 -> 잠깐의 필요에의해 사용되지만 키워드가 될 수도 있는 친구들이 예약어 인가요? 그렇다면 키워드는 예약어가 될 수 있는 충분조건을 가지고 있는 것인지요?
- 미해결홍정모의 따라하며 배우는 C언어
while(getchar()!='\n')에 대해서 질문합니다!!
앞부분 강의에서 while(getchar()!='\n')이 나왔을 땐 잘 이해되지 않았지만 직관적으로 '여러가지 글자가 들어오면 맨 앞글자만 받고 나머지는 무시하려고 쓰는구나'하고 넘어갔습니다. 그러다 이번 강의에서 다시 한번 보고 완전히 이해하겠다고 마음을 먹고 구글링도 해보면서 어느정도는 이해를 한것 같습니다. 혹시 제가 이해한 것이 맞는 개념인지 여쭤봐도 될까요? 제가 이해한 것은 일단 우리가 어떤 것을 입력하면 일단 그것은 버퍼에 저장됩니다. 그리고 그것을 scanf 나 getchar를 이용해서 가져가는 것이라고 생각했습니다. 그래서 예를 들어 앞글자만 필요한 프로그램에서 while(getchar()!='\n')을 사용하면 , 앞글자를 제외한 나머지 글자들이 호출을 받지못한 상태로 버퍼에 남아있습니다. 그것들을 '\n'과 비교하기 위해 getchar()로 가져오게 되면 , 그 결과 버퍼는 비워지기 때문에 나머지글자들은 의미가 없는 것으로 간주된다고생각했습니다. --긴 글 읽어주셔서 감사합니다. 교수님 강의로 열심히 공부하고 있고 끝까지 완강하겠습니다.!!!!!--
- 미해결홍정모의 따라하며 배우는 C언어
질문이 있습니다.
안녕하세요 해당본문 함수 매개변수에 대한 질문이 있습니다 void print_binary(char* data, int bytes); 에서 char* data는 main의 struct items_flag의 주소를 받아주고 print_binary 함수에서 for(int i=0; i<bytes; ++i) char_to_binary(data[bytes -1 -i]); 에서 bytes가 1 임으로 data[0]이 됩니다 함수 호출시 void char_to_binary(unsigned char uc) 에서 unsigned char* uc 또는 unsigned char uc[] 가 되면 에러가 나는 이유가 뭔지 알고싶습니다 data[bytes -1 -i] 는 결국 배열을 매개변수로 지정한거 아닌가요?
- 미해결홍정모의 따라하며 배우는 C언어
질문있습니다
안녕하세요 다름이아니라 비트와이저 연산 오퍼레이터로 비교를 하게되면 정수로 입력되건 문자형으로 입력되건 모두 바이너리형태로 비교하게되는게 맞는지 알고싶습니다 입력은 문자형인데 비교는 바이너리로 되고있어서 이해가 잘 안되네요
- 미해결홍정모의 따라하며 배우는 C언어
함수 내에서 포인터 산술연산에 대해 질문 있습니다.
함수 안에서 const char* str1를 str1++ 하면 함수 호출이 끝난뒤 main에서도 str++된 형태가 되어야 하는 게 아닌지.. 의문이 들어 질문드립니다. int main() { char* str = "Hello"; printf("main first %p\n", str); my_strcmp(str, "Hello"); printf("main last %p\n", str); return 0; } int my_strcmp(const char* str1, const char* str2) { printf("func first %p\n", str1); while (*str1) { if (*str1 != *str2) break; str1++; str2++; } printf("func last %p\n", str1); return *(const unsigned char*)str1 - *(const unsigned char*)str2; }
- 미해결홍정모의 따라하며 배우는 C언어
0.01을 곱하는거와 100으로 나누는것
이윤구하는 문제중에서 저는 fund*annual_interest*0.01f를 하여서 구했는데 선생님과 값들이 조금씩 다르더라구요.몇년 걸리는지는 같아요! 0.01f를 곱하는것과 100으로 나눈것이 왜 미세하게 값이 다른거죠??
- 미해결홍정모의 따라하며 배우는 C언어
int num,sum=0; 과 int sum,num=0;의 차이
int sum,num = 0; int stats = 0; printf("Input integer (q to quit) : "); stats = scanf("%d", &num); while (stats == 1) { sum = sum + num; printf("Input integer (q to quit) :"); stats = scanf("%d", &num); } printf("sum = %d", sum); return 0;궁금한게 있습니다. 위에 코드처럼 int sum,num=0;으로 값을 초기화시 초기화 되지 않은 지역변수 'sum' 이 사용되었다고 오류가 뜨는데요.제 머리속에 서는 컴파일러가 왼쪽부터 오른쪽 방향으로 (-->)진행을 시작하다가 ;을 만나면 프로그래머의 의도를 알아차리고 해석하는걸로 알고있는데용그러면 ;을 만나기전까지 int sum,num=0;이나 int num,sum=0;이 똑같지 않나요?sum과 num의 순서가 문제라면int sum=0;int num=0;이렇게 선언을 시작하고 실행해도 안되야 될텐데 이거는 왜 되는걸까요..?? 제 개념이 잘못되어있는거 같은데 어느 부분이 잘못되어있는건지 궁금합니다 ㅜㅜ
- 미해결홍정모의 따라하며 배우는 C언어
11:00부근 질문있습니다
printf("Programming");을 빌드하고 콘솔에 copy Lecture3.exe test.exe를 입력하면 exe파일을 복사해 보관해 놓은다고 하셨는데 복사된 파일이 어디에 보관되는지 궁금합니다. 그리고 파이프(|)는 문자열만 넘겨줄수있나요?
- 미해결홍정모의 따라하며 배우는 C언어
파일 오픈 안됨 질문
안녕하세요 다름이 아니라 아무리 확인해도 파일 오픈이 되지 않고 if로 들어가서 종료가 되는데 왜그런지 알수가 없습니다.. 답변 주시면 감사하겠습니다.
- 미해결홍정모의 따라하며 배우는 C언어
scanf warning
디버깅을 할 때마다 밑에 Code:C6031 Return value ignored 라는 warning이 뜹니다... 어떻게 해야하나요?
- 미해결홍정모의 따라하며 배우는 C언어
이제와서 조금 늦은 질문인 것 같지만
#include <stdio.h> int main() { const char* mythings[5] = { "Dancing in the rain", "Counting apples", "Watching movies with friends", "Writing sad letters", "Studying the C language", }; printf("%s\n", mythings[0]); } return 0; 배열mythings는 char에 대한 포인터 배열이고 mythings[0]은 문자열"Dancing in the rain"의 첫 번째 주소, 'D'가 있는 주소인데 이 주소를 string으로 출력하면 어떻게, 어떤 원리로 문자열이 출력되는지 모르겠습니다. puts함수도 아닌 printf함수인데 어떻게포인터로 문자열을 출력할 수 있는지 궁금합니다. 2. 디버거로 메모리 구조 확인할 때 의문점이 생겼는데요 0x00837B30는 포인터mythings[0]자체의 주소가 아닌 mythings[0]가 가리키고 있는 주소인 것이죠? 추가로 개인적인 질문인데 yourthings[0]를 포함해 yourthings배열의 원소들이 가리키는 주소는 mythings의 원소들과 다르게 F2로 주소수정 및 복사가 안되는지 궁금합니다.
- 미해결홍정모의 따라하며 배우는 C언어
3.7 강의 질문입니다.
다른 출력값들은 정확히 출력이 되는데 printf("short = %hhd, %hd, %d\n", s, s, s); short %hhd에도 200 이 나오는게 궁금합니다. 온라인 컴파일러에는 값이 이상없이 나옵니다. gcc컴파일러 문제일까요? 구글링을 해보니 %hhd 는 1바이트 정수를 받는 서식지정자이고 short는 2바이트이니 값이 다르게 나와야 되는게 맞는거죠? 제가 어디서 부터 잘 못 했는지 잘 모르겠습니다.. 항상 질문 답변 해주셔서 감사합니다.
- 미해결홍정모의 따라하며 배우는 C언어
int[2]의 의미
정확한 의미가 잘 와닿지 않아서 질문드립니다 (int[2]) { 1, 2 }에서 int[2]의 의미는 int타입의 어떤 값 2개로 된, 이름 없는 리터럴을 원소로 하는 배열을 의미하는 것인데 결국 (int[2]) { 1, 2 }는 초기화되지 않은 쓰레기값 2개와 { 1, 2 } 즉 (쓰레기값1, 쓰레기값2) { 1, 2 } 이렇게 각각 4개의 리터럴과 2개의 복합리터럴로 구성된 것이라 이해하면 될까요?
- 미해결홍정모의 따라하며 배우는 C언어
대댓글로 재질문 드렸는데 못보신거 같아서 한번 더 질문드립니다.
1. arr[0]이라 하면 index가 0인 배열의 첫 번째 원소의 주소이듯이 2차원 배열이름인 arr은 arr[0]과 arr[1] 두 배열 중 첫 번째 주소가 arr[0]이기 때문에 arr == arr[0]인 것인지요? 2. 다른 질문으로는 arr[0]와 &arr[0]는 배열에서는 같지만 포인터 배열에서는 달라질 수 있다고 하셨는데 일반 배열에서는 arr[0]와 &arr[0]가 같다는 설명에 따르면 *(arr[0]) == *arr *(&arr[0]) == **arr *arr == **arr 이러한 결과가 성립하는데 이해가 잘 가지 않습니다. 배열에서 &arr[0]라고 해서 arr[0]의 주소가 따로 어딘가에 저장되지는 않고 컴파일러가 index를 보고 계산만 해줄 뿐이기 때문에 arr[0]과 같게 된다는 설명만 들었을 때는 어느정도 납득이 갔지만 결과적으로 **arr과 같다는 것을 보고 혼란에 빠졌습니다. 가령 int* parr[2] = { arr[0], arr[1] };의 포인터 배열이 있을 때 parr == &arr[0]이므로 **parr == arr[0][0]이 성립함은 납득이 됩니다. 허나 포인터 배열이 아닌 배열에서는 어떻게 *arr와 **arr를 같이 사용할 수 있는지 이해가 잘 가지 않습니다.
- 미해결홍정모의 따라하며 배우는 C언어
포인터질문
const int* p1 = &a; int* const p2 = &a; const int* const p3 = &b; 이 세가지의 차이점이 무엇인가요....?
- 미해결홍정모의 따라하며 배우는 C언어
강의 초반 질문
arr == arr[0] == &arr[0] ==&a[0][0] != a[0][0]부분 설명하실때요 진짜 몰라서 질문드리는데 arr배열에 대한 설명 중에 &a[0][0]나 a[0][0]의 a는 갑자기 어디서 나온거죠?
- 해결됨홍정모의 따라하며 배우는 C언어
버퍼 관련 질문이 있습니다
안녕하세요. 버퍼와 입력 받는 것에 대해서 많이 고민했었는데 이해가 갈듯하면서도 이해가 안 가는 부분이 있습니다. 교수님께서 코딩해놓으신 것중 15열을 보면 scanf("%s %d %lf", str, &i, &d); 에서 입력을 받을때 엔터를 치면 '\n'이 버퍼에 남아서 그 다음 20열 scanf함수에서 문자를 입력 받을때 버퍼에 남아있던 \n이 영향을 미쳐서 제대로 입력 못 받을꺼라고 생각했는데요..교수님께서 입력하신 값들이 변수에 들어갔네요. 제 생각이 틀린거 같은데 왜 틀렸는지 말씀해 주시면 감사하겠습니다.
- 해결됨홍정모의 따라하며 배우는 C언어
build solution 단축키
빌드솔루션 단축키가 영상에선 f7인데 저는 strl+shift+B 네요. 보통 프로그램들이 단축키는 잘 안바꾸는편인데 VS는 바꼈나봐요? 불편..불쾌.. 아래질문하신분처럼 빌드에러도 뜨고요. ;;;
- 미해결홍정모의 따라하며 배우는 C언어
6.13 강 1분 23초
/* scanf가 쓰일때 마다 생기는 문제가 있습니다 scanf 값을 입력 받고 enter를 치고 다시한번 입력한뒤 enter를 다시 한번 처야 맨처음 입력한 값이입력됩니다 예를 들어 아래 코드에서 4354(설정해둔 비밀번호)를 입력하고 enter 를 치면 아무일도 일어나지 않고 다른숫자(342) 를 치고 enter를 다시한번 치면 그제서야프로그램이 종료가 됩니다 제가 계속 실수 하는 부분이 있는걸까요? */ #include <stdio.h> int main(void) { int pass_waord = 4354; int input = 0; printf("Enter secret code : "); scanf(" %d\n", &input); while (input != pass_waord) { printf("Enter secret code : "); scanf(" %d\n", &input); } printf("Good"); return 0; }