본문 바로가기

* Language/C6

초등학생도 쉽게 이해하는, 포인터 *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.
[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.
[C언어] 확실히 알고가자 프로토타입(Prototype)이란?(개념잡기) C언어를 공부하다 보면 코딩을 하는 능력과는 별개로 단어적인 개념으로 인해 쉽게 지치기 마련이다. 단어를 사전적 그대로 받아들이기보다 어떠한 이미지로 기억하는 것이 훨씬 더 효율적이다. 포로토타입(Prototype)이란 무엇일까? Pro의 접두사로 "~~ 이전에"라는 의미가 가진 무엇인가 라는 생각이 든다. Pro(~이전에) + to(~에) + type(타입, 유형) : ~하기 이전에 어떠한 타입으로 무언가를 해놓은 것. 위의 개념적 이미지를 가지고 다음 사례를 읽어보자 1. 책을 읽기 이전에 어떠한 책인지 대략적으로 파악할 수 있는 어떠한 타입? : 목차 2. 본격적인 출시 이전에 어떠한 기능을 검증하기 위해 제작하는 제품(타입)? : 시제품 핵심 이미지 : ~을 하기 이전에 미리 확인하는 이미지 C언.. 2021. 1. 6.