본문 바로가기

* Language24

초등학생도 쉽게 이해하는, 포인터 *p++와 (*p)++의 차이점 c언어에서 포인터를 공부하다 보면, 다음 아래의 개념이 엄청 햇갈린다. 바로 *p++와 (*p)++의 개념이다. 이 둘은, 겉으로 보기에는 비슷해보이지만, 우선순위 때문에 작동 방식이 다르다. *p++와 (*p)++는 C/C++에서 자주 혼동되는 문법이니, 우선 1개씩 뜯어서 간단하게 코드 예제와 함께 차이점을 살펴보자. 1. *p++ 의 의미 현재 p는 arr[0]을 가리키고 있습니다.#includeint main(){ int arr[] = {10, 20, 30}; int *p = arr; printf("%d\n", *p++); // 출력: 10 printf("%d", *p); // 출력 : 20} 해석p++ 가 먼저 실행됨 (후위 증가 연산자)하지만 *가 붙었으므로, 증.. 2025. 6. 18.
[C언어] 포인터 개념 아직도 햇갈리시나요? 코드로 봐야 100% 이해 할 수 있습니다. C언어를 공부하다 보면 고비가 찾아오는데 그 첫번째 관문이 포인터 부분이 아닐까 싶다. 프로그래밍 언어를 공부함에 있어서, 가장 좋은 방법은 코드로 계속해서 뜯어 보는 것이다. (책으로 계속해서 봐봤자 절대 실력 향상에 도움이 되지 않는다는 것을 경험한적이 있다.) 그냥 모르더라도 일단 코드로 쳐보고 개념과 1:1 매핑을 시켜보는 과정이 제일 중요 한것 같다. 포인터 개념 * 포인터란? : 메모리 주소값을 저장하는 변수. * 표현 방법? int n = 10; int *ptr = &n; 하나의 기초적인 프로젝트로 포인터 이해하기 정답(Answer) 보다는 아래의 시행착오 과정을 우선적으로 보는것을 추천드립니다. 그리고 난 뒤 Answer를 보면 어느정도 이해가 갈거라 생각합니다. Q) num1, num2의.. 2021. 9. 4.
[C언어] 사용자 입력 여러개 받기(반복문) scanf를 이용하여 1개를 받을 수는 있지만, 만약 여러개(10개 혹은 그 이상)를 받는다면? 어떻게 작성 할 수 있을까? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include int main() { int arr[10]; for(int i=0; i 2021. 8. 30.
[파이썬 Python] 쉽게 이해하는 continue, break continue와 break를 이해하기 전에 기초적으로 가져가야 하는건 반복문이다. 즉, 아래와 같은 그림으로 우선 가져가면 된다. [반복문] ㄴ다음단계 실행 - continue ㄴ멈춤 - break 이게 무슨 소리일까? 간단하게 전체 큰 틀의 의미를 논리로 살펴보자. 반복문을 실행을 하다 보면 1) 어느 반복 시점에서 다음 반복 시점으로 넘어가고 싶어하는 경우가 있을것이며,(계속) 2) 다음 반복문으로 넘어가기 싫을 경우가 있을 것이다.(중지) 이 두가지의 관점을 가지고 코드로 바로 살펴보자 1) continue 1 2 3 4 5 6 7 8 9 list = [1,2,3,4,5,6,7,8,9,10] sum = 0 for num in list: if num % 2 == 0: continue sum += n.. 2021. 8. 26.
[C언어] 헷갈리는 증감 연산자(++a, a++) 차이 한 번에 이해하기 C언어를 공부하다 보면, 처음에 직면하게 되는 문제가 증감연산자(전위, 후위)이다. 그럴수록 많은 사례를 보는것 보다 하나의 원리를 파고들어 이해하는게 훨씬 효과적이다. 우선 큰 원리는 아래와 같다. (1) b = a++ b = a; a = a + 1; (해설) :a를 b에다 먼저 넣고 나중에 a를 1증가 시켜야 한다. (2) b = ++a; a = a + 1; b = a; (해설) :a를 먼저 증가 시키고 그 증가시킨 a를 b에다 넣는다 코드로 살펴보자 (1) 1 2 3 4 5 6 7 8 9 10 11 #include int main() { int a = 1; int b = 2; b = a++; // a = 2, b = 1 printf("%d %d\n", a, b); } cs 초기값 a = 1 , b .. 2021. 8. 17.