본문

[잡담] C언어 문자열과 정수변수 입력방식 차이 [19]




(315557)
작성일 프로필 열기/닫기
추천 | 조회 921 | 댓글수 19
글쓰기
|

댓글 | 19
1
 댓글


(IP보기클릭)118.235.***.***

코드블럭이 뭐지...요세는 그런걸로 코딩하는가...;;
21.12.16 19:13

(IP보기클릭)59.16.***.***

흥어왕!!파르티잔
에...혼자 배우는 거라. 무거운건 육체만으로 충분해서T..T 가벼운 IDE를 찾다보니 VS말고 이걸 쓰게 되었습니다. | 21.12.16 20:01 | |

(IP보기클릭)119.65.***.***

뭔가 예제부터 엄청어렵게 적으셨네요. int A; char B[10]; 이런식으로 변수명좀 다르게해주세요. 우선 정확힌 문자든 실수든 배열로하면 배열이름자체가 주소입니다. 문자만 주소가 되는게 아니에요. int A[10]; char B[10]; printf("A : %d, \n B : %d", A, B); 요렇게 출력해보시면 둘다 각변수의 주소값이 나옵니다
21.12.16 19:17

(IP보기클릭)59.16.***.***

에스페란스
아...그렇군요...감사합니다... | 21.12.16 19:48 | |

(IP보기클릭)116.121.***.***

드디어 포인터의 세계로 오셨군요. 환영합니다. "문자열 입력받을 때 쓰지 않는 이유는 배열의 이름 자체가 주소를 나타내기 때문이다." <- 맞습니다. 이 이유 때문입니다. "아....그렇다면 말이죠, 굳이 문자열만 저렇게 이름 자체가 주소를 나타내도록 하지 말고, 그냥 정수값이던 실수값이던 번거롭게 &빼먹어서 오류 나게 하지말고 문자열같이 이름 자체가 주소를 나타내도록 하면 않되나요?" <- 가능합니다. 이미 이걸 위해 정의된 문법이 있습니다. 예를 들어 int형 변수를 선언하실 때. int A라고 선언하면 A의 값은 "값"이지만 int* A와 같이 *을 넣어서 선언하면 A의 값은 이제 주소를 나타냅니다.
21.12.16 19:19

(IP보기클릭)116.121.***.***

오잇스
값이 아닌 메모리 주소를 참조하는 변수를 "포인터 변수"라고 부릅니다. 일반 변수로는 int A; scanf("%d", &A); printf("%d", A); 위와 같이 작성됩니다. A는 "값"을 의미하고 scanf 함수는 입력받은 값을 메모리상 "어디에" 적어야 하는지를 받기 때문에 변수 A에 값을 저장하고 싶으면 &A로 A의 주소를 주는 것이지요. 만약 포인터 변수를 쓴다면 같은 구조를 아래와 같이 써야 합니다. int* A = malloc(sizeof(int)); scanf("%d", A); printf("%d", *A); 한 줄씩 설명 드리겠습니다. int* A <- A라는 이름의 포인터 변수를 생성하라는 뜻입니다. A는 값이 아닌 메모리 상 주소를 가리키며 이 메모리 주소에는 int형의 크기만큼 공간이 할당되어 있을 거라는 뜻입니다. int* A = malloc(sizeof(int)); <- malloc 함수는 메모리 상에서 주어진 용량만큼 메모리를 잡아서 그 "주소"를 반환합니다. sizeof(int)는 int형의 크기가 몇인지 반환합니다. 따라서 이 구문은 메모리 상에서 int 형 크기만큼 공간을 잡아서 그 주소를 A라는 포인터 변수에 저장한다는 의미입니다. scanf("%d", A); <- 아시 듯이 콘솔에서 정수형으로 입력받아 A가 저장하고 있는 메모리 주소에 쓰라는 얘기입니다. printf("%d", *A); <- A앞에 붙은 *은 A가 저장하고 있는 메모리 주소가 아닌 그 주소에 저장된 "값"으로 읽겠다는 의미입니다. | 21.12.16 19:26 | |

(IP보기클릭)59.16.***.***

오잇스
그러고보니...교제 다음장에 Chapter 09 '배열과 포인터' 라고 나오는데 ....-..- 질문만 보고 어찌 아신거지 ... 권해주신 교제는 잘 보겠습니다. 아직 오질 않아서-..- | 21.12.16 19:55 | |

(IP보기클릭)125.133.***.***

지금은 문법이 그렇구나 하고 넘어가시는 것이 좋습니다. 변수의 값과 주소에 대한 개념에 대한 것은 '포인터' 챕터에서 상세하게 다룰 것입니다. 포인터는 C를 공부하는데 가장 큰 고비중의 하나이며, 포인터를 이해하고 능숙하게 다룰 줄 알아야 C를 할 줄 안다고 할 수 있습니다. 포인터는 C가 메모리 주소에 접근하는 방법이며, C#, JAVA 같은 언어와 달리 로우레벨 엑세스가 가능해 지도록 해줍니다.
21.12.16 19:22

(IP보기클릭)59.16.***.***

잉그람
...예전에 VB 6.0 배울때는 '와, 혼자서 하는데 막 창이 뜨고 계산기도 만들고, 그림판도 만들수 있네?! 프로그레밍 개꿀! 나 좀 천재인듯' 했었습니다. 데니스 리치가 아직 살아있었으면 F-word 메일을 보냈을 텐데... 답변 감사드립니다. | 21.12.16 19:57 | |

(IP보기클릭)221.163.***.***

정확히 이해하려면 메모리 할당까지 가야 어느정도 이해가 될 수도 있는데, 아직은 그냥 문법이 거지 같구나 하고 넘기세영 ㅎㅎ
21.12.16 19:28

(IP보기클릭)59.16.***.***

루리웹-3649315747
그냥 문법이 거지같은 걸로 생각하겠습니다. 제가 멍청한게 아닙니다. | 21.12.16 19:58 | |

(IP보기클릭)70.54.***.***

정적 메모리 단계에서는 이해하기 힘든 부분입니다. 그냥 이런 문법 이구나 하신 다음에 동적 메모리 할당을 시작 하시면서 다시 한번 보시면 이해가 편하실 겁니다.
21.12.16 19:38

(IP보기클릭)59.16.***.***

분쇄쿠키
다시 봐야 하다니T..T 답변 감사드립니다. | 21.12.16 19:58 | |

(IP보기클릭)70.54.***.***

인민배우 심영
극단적으로 말하면 포인터 역할이 동적 메모리 사용을 위한거라... | 21.12.16 20:04 | |

(IP보기클릭)175.200.***.***

포인터 개념은 처음에 워낙 잡기 어렵다보니... 힘내세요
21.12.16 20:16

(IP보기클릭)59.16.***.***

에레쨩

| 21.12.16 20:30 | |

(IP보기클릭)210.117.***.***

vs code가 가벼운ide입니다..이클립스보다도 오류없고 가볍고괜찮습니다
21.12.16 20:27

(IP보기클릭)59.16.***.***

루리웹-6113790665
감사합니다. | 21.12.16 20:31 | |

(IP보기클릭)124.49.***.***

Implicit conversion임. Char array인 A는 컴파일러가 암시적으로 &A[0]으로 바꿔서 넣어 줍니다.
22.01.04 23:27


1
 댓글





읽을거리
[PS5] 국산 게임의 별로서 기억될 칼, 스텔라 블레이드 (85)
[MULTI] 탐험으로 가득한 사막과 맛있는 메카 전투, 샌드랜드 (19)
[MULTI] 아쉬움 남긴 과거에 보내는 마침표, 백영웅전 리뷰 (44)
[MULTI] 고전 명작 호러의 아쉬운 귀환, 얼론 인 더 다크 리메이크 (17)
[게임툰] 자신만의 용을 찾는 여행, 드래곤즈 도그마 2 (50)
[게임툰] 공주의 변신은 무죄, 프린세스 피치 Showtime! (34)
[NS] 창세기전: 회색의 잔영, 기념사업의 끝 (157)
[MULTI] 개발 편의적 발상이 모든 것을 쥐고 비틀고 흔든다, 별이되어라2 (88)
[NS] 여아들을 위한 감성 영웅담, 프린세스 피치 Showtime! (49)
[게임툰] 해방군은 왜 여자 뿐이냐? 유니콘 오버로드 (126)
[MULTI] 진정한 코옵으로 돌아온 형제, 브라더스: 두 아들의 이야기 RE (12)
[MULTI] 모험의 과정이 각별한 경험으로 맺어질 때, 드래곤즈 도그마 2 (52)



글쓰기
공지
스킨
ID 구분 제목 글쓴이 추천 조회 날짜
118 전체공지 업데이트 내역 / 버튜버 방송 일정 8[RULIWEB] 2023.08.08
143 공지 게시판 이용자 프로그래밍 언어 설문 조사! (2차 설문 20/04/30~... (3) _ 식봉이는 식봉해 3 1500 2021.03.24
3 공지 [공지]프로그래밍 & 코딩 게시판 입니다. _ 식봉이는 식봉해 4 1928 2021.03.10
4799 질문 세가좋어 300 2024.04.12
4666 질문 공돌이인생 105 2024.03.29
3165 잡담 루리웹-1970043849 208 2023.12.18
710 질문 질풍비장의패 1 591 2022.11.30
707 질문 루리웹-3648796984 784 2022.11.23
691 잡담 루리웹-8641268934 2 711 2022.08.07
685 잡담 루리웹-4247021526 2 749 2022.07.25
647 잡담 루리웹-4746138650 682 2022.06.01
637 질문 키라 요시카게 1 743 2022.05.24
631 질문 우너무너 668 2022.05.14
597 질문 키라 요시카게 654 2022.04.03
527 질문 와이플 652 2022.01.14
526 질문 와이플 679 2022.01.13
525 질문 와이플 1 825 2022.01.13
522 잡담 인민배우 심영 885 2022.01.09
521 질문 인민배우 심영 731 2022.01.08
518 질문 오잇스 650 2022.01.05
514 질문 인민배우 심영 544 2022.01.02
513 질문 인민배우 심영 668 2021.12.31
512 질문 인민배우 심영 1036 2021.12.30
511 잡담 인민배우 심영 1 655 2021.12.27
509 잡담 salvare545 613 2021.12.27
508 강좌 _ 식봉이는 식봉해 4 1180 2021.12.27
507 질문 인민배우 심영 705 2021.12.25
500 잡담 인민배우 심영 1 817 2021.12.24
497 잡담 인민배우 심영 921 2021.12.16
495 질문 V1046R-MAHORO 1 510 2021.12.14
491 질문 인민배우 심영 715 2021.12.10
글쓰기 69개의 글이 있습니다.
1 2 3
게시판 매니저
X