본문

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

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


profile_image


(315557)
1 | 19 | 1245 | 비추력 43967
프로필 열기/닫기
글쓰기
|
목록 | 이전글 | 다음글

댓글 | 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 공지 [공지]프로그래밍 & 코딩 게시판 입니다. _ 식봉이는 식봉해 5 3177 2021.03.10
6880 질문 Joke8 1 492 2025.02.27
5715 잡담 루리웹-6431651489 1 662 2024.07.30
5542 잡담 앤드원 1 456 2024.07.07
5410 잡담 루리웹-9116069340 3 467 2024.06.21
4799 질문 세가좋어 1 804 2024.04.12
4666 질문 공돌이인생 1 510 2024.03.29
3165 잡담 루리웹-1970043849 1 512 2023.12.18
710 질문 질풍비장의패 2 983 2022.11.30
707 질문 루리웹-3648796984 1 1285 2022.11.23
691 잡담 루리웹-8641268934 3 1133 2022.08.07
685 잡담 루리웹-4247021526 3 1267 2022.07.25
647 잡담 루리웹-4746138650 1 1045 2022.06.01
631 질문 우너무너 1070 2022.05.14
527 질문 와이플 1 1123 2022.01.14
526 질문 와이플 1 1069 2022.01.13
525 질문 와이플 2 1232 2022.01.13
522 잡담 인민배우 심영 1 1243 2022.01.09
521 질문 인민배우 심영 1 1113 2022.01.08
518 질문 오잇스 1 1049 2022.01.05
514 질문 인민배우 심영 1 867 2022.01.02
513 질문 인민배우 심영 1 1142 2021.12.31
512 질문 인민배우 심영 1 1463 2021.12.30
511 잡담 인민배우 심영 2 1009 2021.12.27
509 잡담 salvare545 1 941 2021.12.27
508 강좌 _ 식봉이는 식봉해 5 2150 2021.12.27
507 질문 인민배우 심영 1 1058 2021.12.25
500 잡담 인민배우 심영 2 1243 2021.12.24
497 잡담 인민배우 심영 1 1245 2021.12.16
글쓰기 67개의 글이 있습니다.
1 2 3

게시판 매니저

X