묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨독하게 시작하는 C 프로그래밍
C언어랑 관계있는지..
음 클로저와 c언어의 함수 포인터 비슷한 느낌인데 차이점은 무엇일까요클로저란 이름처럼 전역 변수처럼 사용하지만 클로저 함수만 접근 가능하기 떄문에 클로저란 이름을 쓴거 같은데 이점이 함수 포인터와 다른 점일까요... C언어 포인터 질문과 관계가 있는지 몰르겠지만 왠지 클로저 구현을 한다면 포인터를 사용한게 아닐까 싶은생각이 문득 들어서 한번 여쭤봅니다..
-
미해결홍정모의 따라하며 배우는 C언어
재출력이 안돼요.
파일에 저장할 텍스트를 입력하는 것까지는 문제가 없는데 while (fscanf(fp,"%s",words) != EOF) fprintf(stdout,"%s\n",words);이 문장이 제대로 실행되지 않는 것 같아요
-
해결됨독하게 시작하는 C 프로그래밍
필수 실습 예제 질문 있습니다.
예제는점수 0~100점을 입력 받아서 80점 이상 이면 합격 그렇지 않으면 불합격이라고 출력하는 프로그램 작성입니다.#include<stdio.h>int main(void){ unsigned int input = 0; scanf_s("%d", &input); (input <= 100) ? printf("점수를 입력하세요: %d\n", input) : 0; (input <= 100) ? printf("결과 : %s", (input >= 80) ? "합격" : "불합격") : 0; return 0;}저는 이런 식으로 코드를 짰는데 잘못된 점이 있는지 궁금합니다. 0~100을 나타내는 코드가 영상에 안 나와서 질문 드립니다.
-
미해결C 프로그래밍 - 입문부터 게임 개발까지
질문이 있습니다
상당히 간단한 것일 수도 있겠지만 궁금한데여러 줄 주석 처리를 할 때 한 번에 묶는 것을 어떻게 하는지 알려주실 분 계신가요?
-
미해결홍정모의 따라하며 배우는 C언어
warning이 안지워져요 3.4강의 21분
3.4 강의 21분 43초에 나오는 코드랑 똑같이 작성 하였는데scanf("%f", &Won); 여기에 Warning이 계속 떠 있어요Description은 Return value ignored: 'scanf'. 이렇게 나와 있습니다.선생님은 안뜨는데 왜 저만 떠있나요 버전의 차이인가요? _CRT Secure No Warnings은 properties에 입력해두었습니다. #include <stdio.h> int main(){float Won = 0.0f;float USdollar = 0.0f; printf("Input Won\n");scanf("%f", &Won); <<<<<<<<<<< 이 부분 USdollar = Won * 0.00089f;printf("USdollar = %f\n",USdollar);return 0;} Return value ignored: 'scanf'. 라고 떠있어
-
미해결홍정모의 따라하며 배우는 C언어
scanf & 버퍼
안녕하세요강의의 최종 코드 중 일부입니다.... printf("input one character and two integers:\n"); while ((c = getchar()) != '\n') { scanf("%d %d", &rows, &cols); while (getchar() != '\n') continue; display(c, rows, cols); ...여기서 A 3 2(엔터)를 입력하면 상단의 c=getchar()에 의해 getchar이 A를 가져가고 버퍼는 |A 3 2\n| 에서 | 3 2\n| 로 변하게 됩니다.(띄어쓰기 유의) 그다음 scanf("%d %d", &rows, &cols); 는 버퍼의 맨 앞의 띄어쓰기를 읽어야 하지 않나요? 그런데 아시다시피 scanf가 입력버퍼에서 읽는 것은 3과 2입니다. scanf가 띄어쓰기를 읽는다고 알고 있는데 3앞의 공백이 어떻게 처리된건지 궁금합니다. 감사합니다.
-
해결됨홍정모의 따라하며 배우는 C언어
10.2강 27:09에서 질문이 있습니다.
가변 길이 배열에 대해서 위키에는 길이를 런타임에 결정하는 배열(whose length is determined at run time (instead of at compile time).)라고 정의되어있는데요.https://en.wikipedia.org/wiki/Variable-length_array int main() { const int n = 8; int arr[n]; };제가 작성한 코드에서 n이 8로 초기화 및 상수로 되어 있는데 이건 컴파일 타임에 이미 배열의 길이를 결정해 놓은게 맞나요??오류가 나는 것은 비주얼 스튜디오의 컴파일러가 이 문법을 지원하지 않아서 일까요,,??
-
해결됨독하게 시작하는 C 프로그래밍
포인터 질문드립니다
개념이 잘 안 잡혀서 다시 한 번 여쭈고자 질문을 남깁니다. 변수 : 메모리 공간을 사용하는 방법포인터 : 변수가 저장된 메모리 공간의 주소변수에 바로 값을 대입 : 직접 지정포인터로 접근해 값을 대입 : 간접 지정제가 이해한 개념이 맞을까요?
-
해결됨독하게 시작하는 C 프로그래밍
scanf("%d\n", &input)
수업을 듣다 궁금증이 생겨서 질문드려요~scanf("%d\n", &input);4입력시 4\n여서 종료하려면 \n하나가 더 필요 한거 까지는 이해가 됐습니다. 그후에 \n를 계속 눌러도 안넘어가지는게 어떤 것때문인지 궁금합니다.%d\n 형식을 사용하므로 형식에 안맞는 \n는 안읽고%d\n의 형식만 읽는건가요?아니면 %d\n 는 숫자와 (1개 이상의 공백문자)여서 엔터가 계속 입력되고 %d(다른정수)\n입력시 \n를사용하므로 %d만남기고 종료되는건가요?형식이 달라서 안읽는건지 \n가 1개이상의 공백문자를뜻해서 여러번읽는건지 궁금합니다!
-
해결됨홍정모의 따라하며 배우는 C언어
포인터에 저장되는 주소값의 자료형
포인터 변수가 어떤 변수의 주소값을 저장한다는 것은 이해했습니다.그런데 메모리의 '주소'는 어떤 자료형에 속하나요?형식지정자 %p로 출력해보면 16진수로 나오는 것 같은데 정수형이라고 생각해도 될까요??
-
해결됨독하게 시작하는 C 프로그래밍
for문 증감 연산
이 두 구문에서 차이는 증감연산자가 전위인지 후위인지 인데 for문에서는 전위든 후위든 작동 방식에 있어서는 차이가 없지 않나요? i = 0 일때 조건식을 검사해서 참이므로 i를 출력하고 i++든 ++i든 i의 값을 1 증가 시킨후에 다시 조건식을 검사하는 것으로 알고 있습니다. chat gpt에서 차이가 있다고 나오는데 설명이 명확하지 않아 여쭈어 봅니다! 정리하자면 전위와 후위의 근본적인 차이점은 알고 있지만 그것이 for문 증감식으로 쓰일땐 결과적으로 같은 동작 방식을 취하는게 아닌가 궁금합니다 감사합니다!
-
해결됨독하게 시작하는 C 프로그래밍
char ch=0;
char ch=0;ch=getchar()랑char ch=getchar(); 차이가 뭔지모르겠어요ch=0은 다른뜻이있는건가여?자료형 변수 = 정수로 정의하셨는데자료형 변수= 함수로 정의해도 나중에 문제가 생길까여?
-
미해결홍정모의 따라하며 배우는 C언어
1.0625e0과 0.0625e0의 차이
안녕하세요. 강의의 23째 줄 코드를 제가 0.0625e0;로 바꾼 후 build를 해보니까 프로그램 마지막 출력에서 각각 아래와 같은 값이 나왔습니다. 0x1.0000000000000p-4 0X1.0000000000000P-4 저는 0.0625가 1/16이니 출력이 0x1.000...0p-1이나0x0.1000...0p+0일 줄 알았는데 p-4가 나와서왜 이러한 값이 나오는지 질문드립니다.
-
해결됨독하게 시작하는 C 프로그래밍
엔디안에 대해 문의드립니다.
강의에서 문자열의 경우, 메모리를 확인했을 때 문자열의 순서에 따라서 바이너리가 정렬된 것을 알 수 있었습니다. 근데 int로 선언된 16진수 데이터의 경우는 역순으로 채워진다는 개념을 들으니 혼동이 옵니다. 혹시 문자, 문자열의 경우는 정배열이고 숫자 데이터의 경우는 역배열이다 라고 생각하면 될까요?
-
해결됨독하게 시작하는 C 프로그래밍
static 변수에 관해서 질문이 있습니다.
int TestFunc(){ static int a = 10; ++a; return a; } int main(){ printf("%d\n",TestFunc()); printf("%d\n",TestFunc()); printf("%d\n",TestFunc()); }위 예제에서의 질문입니다. 1. Compile시에 정적영역이 결정되는 건가요?질문이유 : a의 주소에 코드가 실행되지 않았음에도 이미 10이라는 값이 들어가있어서 질문을 드립니다. 2. TestFunc()이 실행될 때 static int a = 10가 매번 평가되는게 아닌건가요? 질문이유 : 제 생각으로는 정적영역에 있더라도, 할당 연산자 때문에 10을 매번 넣어서, 출력값이 11 ,11 ,11이 될거라고 생각했습니다.
-
해결됨독하게 시작하는 C 프로그래밍
실행과 참조의 개념에 대한 질문
양질의 강의에 진심으로 감사의 말씀 드립니다.다름이 아니라 제가 참조에 대해서 계속 고민하다가 개념적인 이해를 시도하는데 이것이 맞는 것인지 확인하고자 강사님께 질의를 남깁니다. 직접참조 : 메모리 주소로 접근해서 바이너리 확인- 메모리 주소 : 포인터(값을 가리키지 않고 주소를 나타냄)- 그 메모리 주소의 값 : 비트로 구성된 메모리의 값- 변수 : 메모리가 값을 위해 할당한 데이터 공간(값이 들어갈 수 있는 일종의 space) 간접참조 : 메모리 주소의 주소- 즉, 포인터의 포인터- 그래서 간접참조된 메모리 주소에는 값이 들어있지 않고 그 값을 가리키는 포인터(메모리 주소)가 들어있다. "가장 큰 차이는 직접참조는 메모리 공간에 쓰인 바이너리가 있는 것. 간접참조는 주소에 관련된 정보 바이너리가 있기 때문에(직접참조는 메모리 주소 - 값, 간접참조는 메모리주소 - 메모리 주소) 일종의 파이프-라인. 따라서 같은 15라는 값을 나타내도 직접참조는 그 메모리 주소의 값 그 자체를 나타내고, 간접참조는 그 주소에 대한 정보 바이너리가 적혀있다. "제가 계속 고민을 하다 이런식으로 좀 개념을 잡았는데 제대로 잡고 있는 것인지 궁금합니다. 감사합니다.
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
05_adtFileIO 질문있어요.
search -> edit -> save 중 save에 궁금한 게 있습니다.int SaveNodeToFile(MYNODE* pNode)를 보면파일에서 불러낸 경우만 고려돼있습니다.신규 데이터를 찾아서 수정하는 경우에는 저장하지 않고 프로그램 종료 시 신규 데이터 일괄로 저장하는 방법을 써야할까요? pNode->bNew 값을 따져서 신규인지 구분하고 ab+모드로 파일 끝에 저장하는 건 생각했는데파일에 저장했으니 bNew를 false로 수정해야하나?수정하면 offset이 0이라 다시 검색할 때 offset이 0인 데이터를 찾을텐데? 그럼 offset 값은 어떻게 주지? bNew 값을 true로 저장하고 신규 데이터 일괄 저장할 때 덮어 써야하나? 라는 고민에 빠졌습니다. 어떤 방법이 좋을까요?
-
미해결윤파고의 정보처리기사 DB/프로그래밍 All-In-One
dbms의 기출문제를 보고싶습니다.
혹시 기출문제 올인원은 어디서 볼 수 있나요?
-
해결됨독하게 시작하는 C 프로그래밍
최대값구하기 서바이벌
부호있는정수이므로 max의초기값을 0x 80 00 00 00으로해야 맞는게 아닌지... 하는생각이듭니다
-
해결됨독하게 시작하는 C 프로그래밍
비트연산자 뺄셈 구현에서 질문이 있습니다.
안녕하세요 선생님!선생님 덕분에 재미있게 C를 공부하고 있습니다. 감사합니다.다름이 아니고 비트연산자로 뺄셈을 구현할 때 약간 이해가 안 가는 점이 있어 질문을 드립니다. int a = 9, b = 6; printf("%d\n", a + (~b + 1)); // 1001 + 1010 = 10011 ....??? return 0;10진수 9에서 10진수 6을 빼는 연산에서6을 2진수로 치환한 후 부정을 걸어 1의 보수로 만들고 1을 더하면 1010이 되는 것으로 알고 있습니다.여기에 10진수 9를 2진수로 치환한 1001을 더하면 10011이 됩니다.그럼 답이 19가 되어야 하지 않을까 생각이 듭니다. 자리올림을 소거하면 0011로 3이 맞지만그걸 따로 코딩을 안해준 상태에서는 19가 나와야하지 않나요?혹시 C에서 자리올림을 알아서 소거해주는 걸까요? 아니면 제가 계산을 잘 못하고 있는 걸까요? 답변 주시면 너무 감사하겠습니다!