본문

글쓰기   목록 | 이전글 | 다음글

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


profile_image


(315557)
0 | 19 | 1186 | 비추력 43539
프로필 열기/닫기
글쓰기
|
목록 | 이전글 | 다음글

댓글 | 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
 댓글




목록 | 이전글 | 다음글
글쓰기
공지
스킨
ID 구분 제목 글쓴이 추천 조회 날짜
3 공지 [공지]프로그래밍 & 코딩 게시판 입니다. _ 식봉이는 식봉해 4 3030 2021.03.10
6880 질문 Joke8 373 2025.02.27
5715 잡담 루리웹-6431651489 589 2024.07.30
5542 잡담 앤드원 381 2024.07.07
5410 잡담 루리웹-9116069340 2 406 2024.06.21
4799 질문 세가좋어 717 2024.04.12
4666 질문 공돌이인생 454 2024.03.29
3165 잡담 루리웹-1970043849 470 2023.12.18
710 질문 질풍비장의패 1 910 2022.11.30
707 질문 루리웹-3648796984 1204 2022.11.23
691 잡담 루리웹-8641268934 2 1038 2022.08.07
685 잡담 루리웹-4247021526 2 1190 2022.07.25
647 잡담 루리웹-4746138650 970 2022.06.01
631 질문 우너무너 990 2022.05.14
527 질문 와이플 1045 2022.01.14
526 질문 와이플 991 2022.01.13
525 질문 와이플 1 1166 2022.01.13
522 잡담 인민배우 심영 1159 2022.01.09
521 질문 인민배우 심영 1033 2022.01.08
518 질문 오잇스 960 2022.01.05
514 질문 인민배우 심영 804 2022.01.02
513 질문 인민배우 심영 1056 2021.12.31
512 질문 인민배우 심영 1376 2021.12.30
511 잡담 인민배우 심영 1 939 2021.12.27
509 잡담 salvare545 882 2021.12.27
508 강좌 _ 식봉이는 식봉해 4 1954 2021.12.27
507 질문 인민배우 심영 992 2021.12.25
500 잡담 인민배우 심영 1 1194 2021.12.24
497 잡담 인민배우 심영 1186 2021.12.16
글쓰기 67개의 글이 있습니다.
1 2 3

게시판 매니저

X