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] 모두 주소는 같아도 타입이 다르다 표현의미타입주소값 예시 a 2차원 배열의 첫 번째 행의 주소 int (*)[3] 100 *a 첫 번째 행 a[0]int[3] 100 a[0] 첫 번째 행 int[3] 100 &a[0][0] 첫 번째 요소의 주소 (즉, 1의 주소) int* 100 **aa[0][0] == 1 int (값) 1 즉 *a == a[0] == 주소 , **a == a[0][0] == 값 저는 a = 100 인데 *a도 100인게 이해가 안되요
Mac OS 기반 맥북으로 수강하고 있는 학생입니다. VS code가 강의하실 때의 윈도우 기반 vs code랑 사뭇 다르네요.. 처음에 VS code 설치 후 기본 설정과 단축키도 다르고 _getch()도 맥에서는 오류가 뜨고 여러모로 윈도우가 아니여서인지 제한 사항이 많네요. 디버깅 예시 보여주시면서 메모리랑 같이 설명하실 때 저는 도저히 어디서 메모리와 주소를 찾아야 할지 모르겠더라구요.. 혹시 Mac OS 기반도 어떻게 설정하시는지 알 수 있을까요?
안녕하세요. 공부할 때 chat gpt를 자주 활용하고 있습니다. chat gpt에 따르면 getchar()함수를 반환하려면 char a; a = getchar(); 가 아니라 int a; a = getchar(); int형으로 반환을 받아야한다고 하더라구요. EOF를 구분하기 위해서라는데... 그런데 예제들을 보면 char형으로 받는 예제들도 많아서 질문드립니다. 감사합니다.
안녕하세요. CS를 전공하고 있는 대학생입니다. 다음학기 들어야 할 코스와 선생님 강의의 커리큘럼이 겹치는 부분이 있어서, 이 강의를 꼭 들으면서 예습을 하고 싶어서 수강 결제를 진행했으나 후에 강의가 윈도우 개발환경에 맞춰져있다는 설명을 보았습니다. 맥북 유저이지만 대체할만한 강의를 찾지 못해서 되도록 이 강의를 수강하고 싶은데 어느 정도 불편함을 감수하고서라도 이 강의를 수강하는 것에 대해 조언해 주실 수 있을까요? 감사합니다.
강의 내용에서 엑셀 비유하신 부분이 정리하자면, C5에 15가 저장되있고, D7에는 C5의 위치가 저장 되어있다. D7은 참조이다. C5는 참조의 대상이다. 인데, D7은 C5를 참조했다. 라고 표현해도 되는 건가요? 참조는 D7이라고 했었는데, 참조가 명사가 되었다가 동사가 되었다가 하니 헷갈리네요.
안녕하세요. 이름 변수 선언을 할 때 int형으로 선언을 하면 실행은 되는데 하단에 경고문이 뜹니다. 경고 내용이 무엇인지 잘 이해할 수 없어 질문을 남깁니다. 꼭 char형으로 선언해야 하는 이유가 있을까요? int와 char는 서로 크기만 다른 정수형인걸로 알고 있는데 제가 잘못 이해한 부분이 있을까요? 감사합니다!
#include <stdio.h> int main() { char name[32]; int age = 0; scanf("%d%*c", &age); fgets(name, sizeof(name), stdin); printf("%d살 %s 입니다", age, name); return 0; } age로 15를 입력하고, name으로 david를 입력했을 때, 결과가 """ 15살 david 입니다 """ 로, 줄바뀜이 된 채로 출력되는 것을 알 수 있습니다. fgets로 입력을 받을 시, 입력 마지막에 엔터 키를 누른 것 때문에 \n 개행문자가 입력되었기 때문으로 보여지는데, fgets()로 사용자의 입력을 받을 시, 개행 문자를 제하는 방법이 있을까요? 찾아보니 size_t len = strlen(name); name[len-1] = '\0'; 처럼, 문자열 마지막을 \n에서 임의로 null byte로 교체하는 방법을 사용하던데, scanf처럼 fgets()함수 내에서 자체적으로 해결 가능한 방법이 있을 지 알고 싶습니다.
강사님 안녕하세요 강의 듣고 있는 수강생입니다. 제목에 말씀드린 강의의 내용 중, '최소값을 찾아 첫번째 인덱스에 넣고 그 다음부터 해당 인덱스를 증가시켜서 다음 인덱스에 넣으면 된다.'라는 설명을 듣고 사진과 같이 코드를 구현했습니다. 그 후, 강사님의 코드와 비교를 해보았는데, 처음 for문의 시작부터 달라 gpt에 제 코드와 버블정렬에 대해 비교해달라고 했는데 제 코드는 버블정렬이 아니라는 답변을 받았습니다. 결과는 1,2,3,4,5의 오름차순으로 나오는데, 제 코드 중 어디가 잘못되었는지 알 수 있을까요 ? 감사합니다.
VS studio에서 Hello World 처음 작성하고, 문자 입/출력 강의에 예제 작성하려고 하는데 어느 경로를 통해서 프로젝트 추가해서 작성가능한지에 대해 알려주셨으면 합니다. 찾다가 파일 > 추가 > 새 프로젝트 추가 경로를 통해서 추가는 했습니다만요.. 추가로 새로운 프로젝트는 삭제하고 싶은데 삭제가 안되고, 다른 프로젝트에 코드 작성하려니까 안되네요.. 해결방법이 뭘까요? 감사합니다.
강사님 컴퓨터에서는 scanf_s("%4c", szBuffer, _countof(szBuffer)); 여기에 밑줄이 안생깁니다. 하지만 제 컴퓨터 비쥬얼스튜디오 에서는 밑줄이 생기면서 경고가 뜨네요 (shift F5 눌러서 실행 하면 실행은 잘 됩니다.) 경고는 C6328입니다. 크기 불일치: 'unsigned __int64'이(가) Param (3)으로 전달되었습니다. 다음 호출에는 'unsigned int'이(가) 필요합니다. 'scanf_s'. 그래서 경고를 구글링 해보니까 countof 명령어? 의 데이터 크기가 안맞는거 같은데 강사님의 설명 듣고싶습니다.