printf("%s",name[i]);는 왜 printf("%u",name[i])랑 달리, 주소값이 아닌 문자열을 그대로 출력하나요? 그리고, aname은 aname[5][15]로 2차원 배열인데 왜 printf에선 2차원 배열 전체를 안적고 1차원배열처럼 적어도 정상 작동하는건가요?
좋은 강의 감사합니다! 함수(메서드) 선언과 호출 강의를 듣는중인데, 리턴값 관련해서 질문이 생겨서 글을 남기게되었습니다. 현재 리턴값이 있고, 없고의 차이를 크게 못느끼겠어서 질문을 남기게 되었습니다. 현재 이해한것은 리턴을 해주게 되면, 호출 한곳에 값을 돌려준다고 이해를 했는데, 리턴을 안하면 함수의 정의가 된곳에서 진행을 한다고 이해를 했는데, 이때 System.out.printIn(); 을 하면 출력이 되는것도 확인이 된는것을 봤습니다(17:45) 결과적으로 리턴값이 있고 없고의 차이를 크게 못느끼겠어서 이렇게 질문을 남기게되었습니다.
우선 좋은 강의를 제공해주시는 널널한 개발자님에게 감사를 드립니다. 일단 첫번째 질문은 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가 아니라 다른 사용자가 선언할 데이터의 주소를 담을 수 있기에 변수이고 이를 간접지정이라고 한다 맞나요?
#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'); } 문제에서는 입력값을 보정하라는 문구가 있는데 위에서 작성해주신 대로 실행하고 범위에 벗어난 값을 넣었을 때 입력값이 범위에 벗어나면 유효한 값으로 바꿔서 처리하는 보정이 아닌 프로그램이 종료되는 현상이 나타나는데 이 부분에 대해서 궁금증이 남아 글 작성합니다!
안녕하세요, 강의 정말 잘 듣고 있습니다! SDL 설정을 따라해 보려고 하는데, 쉽지 않아서 이렇게 질문을 남깁니다. 알려주신 단축키(alt + F7)도 안되고, 나름 검색해본 방법들도 제가 사용하는 visual studio 에서는 적용이 되지 않는 것 같습니다. 도움을 구합니다. 감사합니다. <SDL 설정 창> -> 이걸 하고 싶어요... <사용 중인 visual studio> tool -> property -> 설정하기 project -> property -> 설정하기 현재 프로젝트에 우클릭 -> property -> 설정하기 위의 3가지를 시도해보았지만 실패했습니다...
메모리 공간 지정에 대한 개념 인건지 해당 메모리(대상)에 접근하는 방식에 대한 개념 인건지가 햇갈립니다. 직접지정에 대한 설명을 들으면 데이터에 메모리주소를 부여하는 방식인데 주소상수를 통해 직접적으로 "너 여기 공간 써"하고 메모리 주소를 부여하는 느낌인것같기도하고, 간접지정설명을 들으면 어떤 메모리에 접근하고자하는 데이터가 저장된 메모리주소를 저장시켜 해당 데이터에 접근하는 느낌인것 같기도 합니다.
풀이에서 max = (max > input) ? max : input 를 저는 (input > max) ? max = input : max; 이렇게했는데 컴파일하니깐 경고가 떠서 구글링 해보니깐 연산식을 제어문처럼 쓰고 있다고합니다. (제가 c언어 말고 다른 쪽에서 제어문을 써 본적이 있어서 언어는 잘 모르지만 제어문을 알고 있습니다.) 제가 작성한 연산식은 잘못된 방식인가요? 그리고 max를 갱신하는 용도면은 if문이 더 낫나요?
안녕하세요. 강의 9.11의 12분 20초 경에 my_print_functions.c 에 my_print_functions.h를 include 하는 이유가 무엇인지 궁금합니다. my_print_functions.c에는 함수들의 바디가 정의되어 있으니까 선언(.h)을 할 필요 없는 것 아닌가요? 제가 #include "my_print_functions.h"를 빼고 빌드를 해보아도 아무 경고 메시지 없이 잘 됩니다. 감사합니다.