본문 바로가기

C

(2)
[백준1935번] (C) 후위표기식2 (1935)후위표기식 백준 1935번 https://www.acmicpc.net/problem/1935 착안점 double형 스택을 구조체로 선언 +, -, *, /인 경우를 제외하면 피연산자이므로 int형 배열에 있는 원소를 push 테크닉 push(ch-'A') 입력 예제를 보면, ABCDE와 같은 피연산자는 숫자로 변환한 뒤, push해줘야 한다. 피연산자는 항상 A, B, 부터 입력되므로 array 배열에 있는 원소들을 차곡차곡 push하기 위해서는 ch-'A'만큼 빼주어야 한다. 맨 처음에 입력하는 num이 곧 array 배열의 길이기 때문에 AA+A+ 입력된다 할지라도 상관이 없다. 실수했던 점 calculate 함수의 parameter를 double로 선언하지 않았던 점. 함수(pop, pe..
[C] 포인터(pointer) 간단하게 이해하기 포인터 나는 포인터가 죽어도 안 외워졌다. 나는 포인터가 죽어도 안 외워졌다. C언어의 꽃이라고 불리는 포인터를 이해하기에 조금 오랜 시간이 걸렸다. 간단하게 생각하자.일단 가볍게 짚고 넘어가자. 포인터(pointer)는 메모리 주소 '값'이다. *는 값이다. &는 주소값이다. * (asterisk) *는 별표다. 별이 붙으면 특별해진다. 군대에서도 별을 달면 대우가 달라진다. 별을 달면 값을 나타낸다. num이 가지고 있는 5를 출력하고 싶다면 ptr라는 변수에 *을 붙여서 *ptr로 나타내면 된다. 그런데, 계급장을 때면, 이 녀석(ptr)은 주소값이 된다. 정말 그런지 ptr만 출력해보자. 계급장을 떄면, ptr 변수는 주소값을 가리킨다. 정확하게 말하면, num 변수의 메모리 주소값을 가리킨다. ..