반응형

읏차, IT차 326

[정보처리기사] C언어 - 2차원 배열과 포인터

지난 시간 1차원 배열 포인터를 배웠다면 https://accompani-i.tistory.com/206 [정보처리기사] C언어 - 배열과 포인터(배열에도 주소값이 있다) 포인터 변수는 주소를 가진다 배열도 주소를 가지는데 예를 들어 int a[5]로 배열을 선언하게 되면, a라는 변수가 메모리 어딘가에 만들어지고 메모리 상에 5개의 공간이 만들어지는데, 배열 a가 accompani-i.tistory.com 이번 시간에는 2차원 배열과 포인터를 학습해보자. ex. int a[3][2] = {{1,2},{3,4},{5,6}}; a에는 배열의 첫 번째 주소값이 들어가므로, 100이 들어가고 a 배열 행을 대표하는 번지 수 배열의 값[임의의 번지수] 배열의 값[임의의 번지수] 100번지 a[0] 100번지 1..

[정보처리기사] C언어 - 배열과 포인터(배열에도 주소값이 있다)

포인터 변수는 주소를 가진다 배열도 주소를 가지는데 예를 들어 int a[5]로 배열을 선언하게 되면, a라는 변수가 메모리 어딘가에 만들어지고 메모리 상에 5개의 공간이 만들어지는데, 배열 a가 가지는 주소는 배열의 [0] 즉, 첫 번째 주소와 같은 주소를 가진다. 다른 말로 a의 주소는 100이다 표로 나타내 보면 a 배열 메모리 주소 메모리 주소의 값 100 [0] 100 [1] 101 [2] 102 [3] 103 [4] 104 ex. #include int main(void){ int i; int a[] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100}; int *ptr = a+3 for(i=0; i (조건을 만족하면) 2. 수행하는 작업을 한 후 3. 증감식을 수행한..

[정보처리기사] C언어 - scanf 와 변수(feat. 포인터 변수)

포인터에 대한 기초적인 개념은 https://accompani-i.tistory.com/204 [정보처리기사] C언어 - 포인터의 이해(feat. 포인터변수, 주소, 주소값) 포인터란? 메모리의 위치를 표현한 기호 메모리의 주소값을 표현한 변수 포인터의 핵심은 그림을 그리는 것 메모리를 우리 생활에 비유하자면, 메모리 주소는 우리가 현재 살고 있는 집의 번지 accompani-i.tistory.com 여기를 거쳤다가 오시고 오늘은 포인터 변수로 활용되는 scanf를 알아보도록 하겠습니다. scanf란? 사용자의 키보드로 입력받을 때 사용하는 함수 scanf의 형식 scanf("%d", 변수의 주소의 값); "%d" -> 어떤 값을 입력 받겠다. 변수의 주소의 값 -> ex. int b; 로 선언 했다면,..

[정보처리기사] C언어 - 포인터의 이해(feat. 포인터변수, 주소, 주소값)

포인터란? 메모리의 위치를 표현한 기호 메모리의 주소값을 표현한 변수 포인터의 핵심은 그림을 그리는 것 메모리를 우리 생활에 비유하자면, 메모리 주소는 우리가 현재 살고 있는 집의 번지수 메모리주소의 값은 그 주소에 살고있는 거주민으로 비유해볼 수 있다. 포인터 변수는 주소의 번지를 할당할 수 있다. 메모리 주소는 본인이 편한 숫자로 임의로 정한다. 위 그림처럼 포인터 변수영역, 일반 메모리 영역에 메모리 주소와 메모리 주소의 값 세 부분으로 나누어 그리고 시작하면 비교적 쉽게 접근 가능하다. 포인터 변수 선언 int *a; -> a라는 변수를 만들고 메모리와 상관 없이 변수 a를 만들어놓고 이 친구는 보통 변수 아니고 포인터 변수다. 주소값을 가지는 특징이 있다. *a = 10 -> *a는 a의 값이라..

[정보처리기사] C언어 - 배열의 이해와 배열 문제풀이

배열이란 - 같은 크기의 기억공간을 연속적, 물리적으로 나열한 것 다른말로, 같은 자료형의 변수를 연속적으로 묶어 놓은 저장공간 배열의 선언 자료형 배열명 [개수] int a [ ] ; ex. int a [5]; a[0] a[1] a[2] a[3] a[4] 이렇게 5개 공간으로 나뉘어지고, 0부터 시작한다. 이차원 배열 같은 자료형의 변수를 행과 열의 연속적인 공간으로 묶어 놓은 것 ex. int a[2][3]; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] ex.1 void main() { char msg[50] = "Hello world! Good Luck!"; int i = 2, number = 0; while(msg[i] != '!') { if(msg[i] ..

[Swift] Timer Error

타이머 코드를 Stack Overflow에 복붙해서 코드 진행중 Button을 눌렀을 때 초가 빠르게 줄어드는 것을 디버그창에서 볼 수 있다. 해결법. 1. Timer를 수행하는 메서드를 변수화 2. 버튼을 눌렀을 때 초기화(이미 진행 되고 있는 Timer 무효화) var timer = Timer() @IBAction func HardnessSelected(_ sender: UIButton) { timer.invalidate() timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateCounter), userInfo: nil, repeats: true) }

[정보처리기사] C언어 - continue, break 개념과 for 반복문이 섞인 문제 박살내기 (feat. 다중for문)

반복문의 옵션이 있다 1. continue 2. break 1. continue란? - 더 이상 아래 문장을 실행하지 않고, 반복문 처음으로 돌아가라 - 반복문에서만 사용한다. - continue가 계속적인 느낌이여서 아래로 내려가야 할 것같지만 - 반복문 '처음'으로 돌아가는 것 주의하자. - 조건이 참일 때 continue 수행 2. break란? - 반복문을 빠져나감 - 반복문에서도 사용가능하다 - switch나 if문 등에서도 사용 가능하다. - 조건이 참일 때 break 수행 ** 다중for문은 하단에서 다루겠습니다. continue ex1 for(i=0, sum=0; i

[정보처리기사] C언어 - while과 if문이 같이 있는 문제 박살내기

#include int main() { int a = 120, b = 45; while(a != b) { if(a>b) a = a - b; else b = b - a; } printf("%d",a); } 무조건 표를 쓰면서 문제를 풀자.. 해설 a a=a-b b b=b-a 초기값 120 45 a !=b 참이고, a>b니까 a-b수행 75 45 a !=b 참이고, a>b니까 a-b수행 30 45 a !=b 참인데, a>b가 거짓이니까 elser구문인 b-a수행 30 15 a !=b 참이고, a>b니까 a-b수행 15 15 a !=b가 거짓이 됐으니, while문 빠져나온다 15 15 a값은 15

[정보처리기사] C언어 - for, while, do~while 차이 모르겠다면..(for while차이, for while복합문제)

조건을 지정해서 반복해서 돌려야 하는 경우에는 세 가지 구문이 있다. for문 while문 do-while문 for문 정해진 횟수만큼 반복 while문 조건이 만족하는 동안 반복 do~while문 무조건 한번 수행 후 조건이 만족하는 동안 반복 for와 while이 헷갈릴텐데, 하단에 예제로 어떤 차이인지 알아보겠습니다. for문 구조 for (초기식; 조건식; 증감식) { 수행하는 작업 } for문의 기본 수행 순서 0. 초기식 확인 1. 조건식 확인한다 -> (조건을 만족하면) 2. 수행하는 작업을 한 후 3. 증감식을 수행한다. 다시 1번으로 돌아가서 조건이 만족할 때까지 수행한다. 조건이 거짓이면 for문을 빠져나온다. for ex. #include int main(){ int j; int sum..

반응형