묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결독하게 시작하는 C 프로그래밍
본 강의에 대한 질문들입니다.
우선 좋은 강의를 제공해주시는 널널한 개발자님에게 감사를 드립니다. 일단 첫번째 질문은 2분 30초 쯤에 말하신 1바이트의 공간을 관리한다 즉 번호표를 매긴다라는 의미에 대한 질문입니다. 제가 아는 배경지식으로 이해한 방법은 주소가 0x0000000000000000부터0xFFFFFFFFFFFFFFFF까지 범위가 있는데 이를 운영체제가1바이트인 공간에 이걸 찾기 위해서1바이트인 공간을 (ex 0x00000ab2332f0001라는 주소를 붙여준다(은행 번호표처럼 사람에게 식별하기위해 번호표를 준다?)라고 이해하는게 맞나요? 2번째 질문은 직접 지정에 대한 내용입니다. 8분쯤 상황을 이해한걸 제가 설명해보겠습니다.직접지정은 제가 지역변수에 int ndata를 선언했다고 가정하면 OS가 ndata의 주소를 할당해주는데그 때 ndata에 지정된 주소를 직접지정된 주소라고 하는건가요? 아님 OS가 할당후에 할당한 주소로 찾아가 우리가 그 주소를 상수로 고정 시키겠다라고 하는게 직접할당인가요? 강사님이 말하시는게 2가지 의미로 해석이 되서 약간 헷갈립니다. 3번째 질문인 간접지정에 대한 내용입니다. 위에 가정을 끌고와서 int ndata라는 변수를 선언한 주소를 저장하기 위해 int *p = &ndata라고 선언을 하면 변수 p라는 공간이 생겨 나고 그 변수 p의 공간에 ndata의 주소를 담아 저장한다. 그런데 p는 ndata가 아니라 다른 사용자가 선언할 데이터의 주소를 담을 수 있기에 변수이고 이를 간접지정이라고 한다 맞나요?
-
해결됨독하게 시작하는 C 프로그래밍
입력값 보정
#include <stdio.h> // 영상에서 나온 해설int main(void){int Input = 0; scanf_s("%d", &Input);if (Input < 1 || Input > 9){printf("1~9사이 정수를 입력하세요.");return 0;}int i = 0;while (i < Input){printf("*\t");++i;}putchar('\n');}문제에서는 입력값을 보정하라는 문구가 있는데 위에서 작성해주신 대로 실행하고 범위에 벗어난 값을 넣었을 때 입력값이 범위에 벗어나면 유효한 값으로 바꿔서 처리하는 보정이 아닌 프로그램이 종료되는 현상이 나타나는데 이 부분에 대해서 궁금증이 남아 글 작성합니다!
-
해결됨독하게 시작하는 C 프로그래밍
교차출력에서요
#include <stdio.h> int main(void) { int list[5][5] = {0}; int count = 0; for (int i=0; i<5; ++i) { if(i % 2 == 0) { // 짝수 행: 왼→오 for (int j=0; j<5; ++j) { list[i][j] = ++count; } } else { // 홀수 행: 오→왼 for (int j=4; j>=0; --j) { list[i][j] = ++count; } } } // 출력 for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ printf("%d\t", list[i][j]); } printf("\n"); } return 0;} 저는 4 - j가 생각 안나서 반복문 하나를 더써서 처리를 했는데.. 비효율적이겠죠? 반복문은 최대한 적게 쓰는게 더 나은가요?
-
해결됨독하게 시작하는 C 프로그래밍
전반적인 강의 분위기
네트워크 핵심이론 듣고 만족도가 높아 "전문 네트워크 솔루션 개발자 되기" 코스로 입문하게 되었습니다.전체적인 강의 분위기가 위 강의같이 화면 보면서 같이 이해하는 방식일까요?아니면 반드시 IDE를 옆에 두고 따라하면서 진행해야하는 강의인지 문의드립니다.
-
해결됨독하게 시작하는 C 프로그래밍
visual studio SDL 검사 설정 방법
안녕하세요, 강의 정말 잘 듣고 있습니다!SDL 설정을 따라해 보려고 하는데, 쉽지 않아서 이렇게 질문을 남깁니다. 알려주신 단축키(alt + F7)도 안되고, 나름 검색해본 방법들도 제가 사용하는 visual studio 에서는 적용이 되지 않는 것 같습니다. 도움을 구합니다. 감사합니다. <SDL 설정 창> -> 이걸 하고 싶어요...<사용 중인 visual studio> tool -> property -> 설정하기project -> property -> 설정하기현재 프로젝트에 우클릭 -> property -> 설정하기위의 3가지를 시도해보았지만 실패했습니다...
-
해결됨독하게 시작하는 C 프로그래밍
직접지정과 간접지정을 잘 모르겠습니다.
메모리 공간 지정에 대한 개념 인건지 해당 메모리(대상)에 접근하는 방식에 대한 개념 인건지가 햇갈립니다. 직접지정에 대한 설명을 들으면 데이터에 메모리주소를 부여하는 방식인데 주소상수를 통해 직접적으로 "너 여기 공간 써"하고 메모리 주소를 부여하는 느낌인것같기도하고, 간접지정설명을 들으면 어떤 메모리에 접근하고자하는 데이터가 저장된 메모리주소를 저장시켜 해당 데이터에 접근하는 느낌인것 같기도 합니다.
-
해결됨독하게 시작하는 C 프로그래밍
최대값구하기에서
풀이에서max = (max > input) ? max : input 를 저는 (input > max) ? max = input : max;이렇게했는데 컴파일하니깐경고가 떠서 구글링 해보니깐 연산식을 제어문처럼 쓰고 있다고합니다.(제가 c언어 말고 다른 쪽에서 제어문을 써 본적이 있어서 언어는 잘 모르지만 제어문을 알고 있습니다.) 제가 작성한 연산식은 잘못된 방식인가요?그리고 max를 갱신하는 용도면은 if문이 더 낫나요?
-
해결됨독하게 시작하는 C 프로그래밍
본 강의 이후 C프로그래밍 학습 방향성
안녕하세요, 우선 질 높은 강의 너무나 감사드립니다.다름아닌, 해당 강의를 통해서 배운 내용을 바탕으로 연습문제들을 풀며 실력을 더욱 키우고자 하는데, 추후 어떤 경로로 연습을 이어나가야할지 감이 잡히지 않아 질문을 남깁니다.개인적으로 전문 개발자가 아닌 전기 및 제어 분야 학생으로써, 임베디드 시스템 등 하드웨어와 접목시키는 방향성을 가지고 C언어를 사용할 예정입니다.이러한 상황에서 어떻게 추후 학습을 어떻게 이어나가는 것이 좋을까요?감사합니다.
-
해결됨독하게 시작하는 C 프로그래밍
컴퓨터 구조에 대한 질문입니다.
1.첫 질문은 제가 컴퓨터 구조를 따로 공부하고 싶은데 어떤 책을 참고해야할 지 모르겠습니다. 2번쨰 질문은 일단 모르겠어서 ,csapp 또는 structured computer organization 을 찾아가면서 공부 중인데 진도가 조금 안 나가고 생각보다 많이 막히는게 있어 맞는 방향인가 고민이 됩니다.이 강의 관련해서 혼자 공부하면서 배웠던건1.키보드의 입력값을 주면 전기신호가 컨트롤러에게 전달되고2.컨트롤러가 신호를받아 데이터를 값으로 변환하고3.그 값을 cpu로 보내서 인터럽트 요청을 하고4.I/o bus를 통해 cpu가 데이터를 읽는다.이게 레지스터로 가 저장이 된다는 것 까지 압니다.더 깊게 알고 싶은데 어디서 어떤 순서로 배워야하는지 잘 모르겠습니다. 또한 컴퓨터 구조론을 공부하는데 또 궁금한게 어디까지 작동원리를 이해 하느냐에 또 발목이 잡힙니다. 예시를 들자면 어떤 책은 CPU에 PC에 집중적으로 설명하는데 반에 어떤 책은 ALU와 레지스터의 연산방법 등 이러한 체계가 연결이 안된다는 느낌이 들어 어 여기서는 이랬는데.. 왜 저기서는 이렇지? 이런 느낌이 크게 들어 막히는 감이 존재합니다.
-
해결됨독하게 시작하는 C 프로그래밍
비트필드 질문
오른쪽부터 차례로 1 2 3 2 로 비트필드를 나누고 1 3 7 5 일때 101 111 11 1여기서 5는 필드 초과되어서 버려서 01 111 11 1 가 됬는데 여기서 unsigned char* 로 포인터 형을 강제로 바꾸어 0111 1111 이렇게 만든상황에서 0x06 하고 엔드 연산을 할때 0111 11110000 0110를 엔드 연산하면 0000 0110인데 이걸 왜 >> 연산해서 3 으로 작은값나오게 했나요 ? 0000 0011그에 대한 언급이 없으셔서 질문 남깁니다
-
해결됨독하게 시작하는 C 프로그래밍
2차원 배열 포인터 질문
int a[2][3] = { {1, 2, 3}, {4, 5, 6} }; int sum = (a+0) + (a+1) + (a+2);여기서 내가 모르겠는 부분은 a는 배열이기 때문에 a[0]이 a의 주소로 참조 되고 주소를 100이라고 가정한다면 a는 100의 값이 저장된다. 이때 *a는 왜 1이 아니고 *a는 100번지라는 주소를 가지는 건가요?? 1차원 배열 포인터는 주소의 위치 값을 말한다고 배웠는데 배열에서는 적용이 다른 거 같아서 헷갈리는데 2차원 배열의 특징으로 외워야 하는 건가요? GPT 설명 🔎 핵심: a, *a, a[0], &a[0][0] 모두 주소는 같아도 타입이 다르다표현의미타입주소값 예시a2차원 배열의 첫 번째 행의 주소int (*)[3]100*a첫 번째 행 a[0]int[3]100a[0]첫 번째 행int[3]100&a[0][0]첫 번째 요소의 주소 (즉, 1의 주소)int*100**aa[0][0] == 1int(값) 1즉 *a == a[0] == 주소, **a == a[0][0] == 값저는 a = 100 인데 *a도 100인게 이해가 안되요
-
해결됨독하게 시작하는 C 프로그래밍
시작 프로젝트 설정
솔루션1개에 여러 개의 프로젝트가 있을 때 컴파일하고 싶은 프로젝트 우클릭후 시작 프로젝트로 설정이 안나와요.. 어떻게 해야하나요?
-
해결됨독하게 시작하는 C 프로그래밍
문자열 입/출력 맥북
Mac OS 기반 맥북으로 수강하고 있는 학생입니다.VS code가 강의하실 때의 윈도우 기반 vs code랑 사뭇 다르네요.. 처음에 VS code 설치 후 기본 설정과 단축키도 다르고 _getch()도 맥에서는 오류가 뜨고 여러모로 윈도우가 아니여서인지 제한 사항이 많네요.디버깅 예시 보여주시면서 메모리랑 같이 설명하실 때 저는 도저히 어디서 메모리와 주소를 찾아야 할지 모르겠더라구요..혹시 Mac OS 기반도 어떻게 설정하시는지 알 수 있을까요?
-
해결됨독하게 시작하는 C 프로그래밍
getchar()함수의 반환형에 대해 질문드립니다.
안녕하세요. 공부할 때 chat gpt를 자주 활용하고 있습니다. chat gpt에 따르면 getchar()함수를 반환하려면 char a; a = getchar();가 아니라int a;a = getchar();int형으로 반환을 받아야한다고 하더라구요.EOF를 구분하기 위해서라는데...그런데 예제들을 보면 char형으로 받는 예제들도 많아서 질문드립니다.감사합니다.
-
해결됨독하게 시작하는 C 프로그래밍
개발 환경 문의드립니다
안녕하세요. CS를 전공하고 있는 대학생입니다. 다음학기 들어야 할 코스와 선생님 강의의 커리큘럼이 겹치는 부분이 있어서,이 강의를 꼭 들으면서 예습을 하고 싶어서 수강 결제를 진행했으나 후에 강의가 윈도우 개발환경에 맞춰져있다는 설명을 보았습니다.맥북 유저이지만 대체할만한 강의를 찾지 못해서 되도록 이 강의를 수강하고 싶은데어느 정도 불편함을 감수하고서라도 이 강의를 수강하는 것에 대해 조언해 주실 수 있을까요? 감사합니다.
-
해결됨독하게 시작하는 C 프로그래밍
참조에 대해 헷갈리는 부분 질문합니다.
강의 내용에서 엑셀 비유하신 부분이 정리하자면, C5에 15가 저장되있고, D7에는 C5의 위치가 저장 되어있다. D7은 참조이다. C5는 참조의 대상이다. 인데, D7은 C5를 참조했다. 라고 표현해도 되는 건가요?참조는 D7이라고 했었는데,참조가 명사가 되었다가 동사가 되었다가 하니 헷갈리네요.
-
해결됨독하게 시작하는 C 프로그래밍
C프로그래밍 책 개정판 출판 계획
강사님 혹시 독하게 시작하는 C프로그래밍 책이 개정된다는 이야기가 있던데 개정판 혹시 언제쯤 나오나요? 나오면 구매하려고 합니다.
-
해결됨독하게 시작하는 C 프로그래밍
표준/입출력 필수실습문제 질문
안녕하세요. 이름 변수 선언을 할 때 int형으로 선언을 하면 실행은 되는데 하단에 경고문이 뜹니다. 경고 내용이 무엇인지 잘 이해할 수 없어 질문을 남깁니다. 꼭 char형으로 선언해야 하는 이유가 있을까요? int와 char는 서로 크기만 다른 정수형인걸로 알고 있는데 제가 잘못 이해한 부분이 있을까요? 감사합니다!
-
해결됨독하게 시작하는 C 프로그래밍
독하게 시작하는 c프로그래밍 구입했는데..
이번에 c언어 공부를 시작하기 위해 독하게 시작하는 c프로그래밍 강의 구입했습니다. 근데 책이 절판이네요ㅜㅜ 책 볼수 있는 방법 있을까요??
-
해결됨독하게 시작하는 C 프로그래밍
.
.