[C언어 강좌] #13-3 포인터(Pointer)

프로그래밍 강좌/C 2021. 11. 23. 00:58

안녕하세요 파일입니다. 포인터 3편을 시작하겠습니다. 포인터는 기본적으로 배울것도 많고, 어렵고, 힘이 듭니다 ㅠ 저도 작성하는 내내 고역이네요.. 그래도 다행인건 포인터 편은 이번이 마지막입니다! 힘내보자구요 (아 참고로 썸네일은 포인터라고 치면 나오는 개를 사용했습니다. 아무 의미 없고 어그로 용이니 무시해주세요 ㅋㅋ) #include int main(){ int a = 0; scanf("%d", &a); printf("%d", a); return 0; } 지금까지 C언어로 입력을 받으면서 printf로 출력할땐 안그랬는데 scanf로 입력받을때는 항상 &a처럼 앞에 &(앰퍼샌드) 기호를 붙였었습니다. 주소로 값을 넘겨야만 했습니다. 이건 나중에 설명하겠다고만 했지 이유도 몰랐고 그냥 외워서 쓰는 수..

Article Thumbnail
[C언어 강좌] #13-2 포인터(Pointer)

프로그래밍 강좌/C 2021. 11. 7. 22:03

안녕하세요 파일입니다. 저번 강의에 이어서 포인터 2번째 시간입니다. 바로 시작해보겠습니다! 포인터와 2차원 배열 &연산자와 *연산자로 2차원 배열을 공부하던것 기억나시나요? 1차원 배열일때는 &array[0]을 하면 첫번째 주소의 값을 가르켰었습니다. 2차원 배열일때는 조금 달랐죠. *(array + 0) == array[0] 이며 이것은 곧 0행의 대표주소 &array[0][0] 이였습니다. 1행의 대표주소는 *(array + 1) == array[1] 이며 이것은 곧 1행의 첫번째 요소의 주소 &array[1][0] 가 되었습니다. 포인터를 이용한 2차원 배열 탐색 #include int main(){ int arr[3][4] = { //3행 4열 {1,2,3,4}, {5,6,7,8}, {9,10,..

Article Thumbnail
[C언어 강좌] #13-1 포인터(Pointer)

프로그래밍 강좌/C 2021. 6. 28. 20:18

안녕하세요 파일입니다. 앞에서 다차원 배열을 다룬 뒤로 거점 한 달쯤에 뵙네요! 앞의 연도가 바뀐 건 기분 탓입니다 ㅎㅎ.. 가 아니고 저 글을 작성하고 많이 바빠졌는데 까먹고 강의를 강제 동면시켜버렸습니다 죄송합니다 ㅋㅋ.. 그래도 제 강의 봐주시는 분들이 꽤 있었는데 이미 다른 강의로 도망가버린 거 같아요.. 그래도 꽤나 많은 부분을 공부했으니 스스로 잘하시고 계시겠죠 ㅎㅎ? 어쨌든 C언어 개념에 고지가 얼마 남지 않았습니다! 오늘 배울 것은 포인터입니다! C언어가 Low-Level에 가깝다고 표현하는 이유가 바로 C언어에 존재하는 포인터 때문입니다. 포인터는 일종의 흑마법에 가까운데 일단 이해하긴 어렵고 위험하나 완벽히 이해한다면 거의 모든 것을 할 수 있습니다. 사실 이런 설명을 들으면 무슨 개소..

Article Thumbnail
[C언어 강좌] #12-2 [Array] 다차원 배열

프로그래밍 강좌/C 2020. 5. 17. 21:32

안녕하세요. 오늘은 앞에서 배운 1차원 배열에 이어 다차원 배열을 보겠습니다. 저희는 3차원 세계에 살고 있습니다. 그렇기 때문에 4차원을 이해할 수 없죠. 1차원은 선분, 2차원은 면, 3차원은 입체라고 합니다. 배열을 만들땐 1차원을 넘어 2차원, 3차원, 4차원,..., n차원 배열까지 만들 수 있습니다. 사실 4차원부턴 사용할 일이 그렇게 많지 않습니다. (AI 라던가, 테트리스 라던가..) 그렇기에 다차원 배열은 대개 3차원 까지를 가리킵니다. 물론 다차원 배열은 2차원 배열 이상을 가리키므로 4차원, 5차원을 다차원 배열이라고 불러도 무리가 없습니다. '다차원 배열'이라고 이름 붙은 이유는 인간의 논리인 1차원, 2차원, 3차원을 배열에 적용시켜서 이해하기 위함입니다. 다음 사진은 2차원 배열..

Article Thumbnail
[C언어 강좌] #12-1 [Array] 1차원 배열

프로그래밍 강좌/C 2020. 3. 30. 22:04

안녕하세요 파일입니다. C언어 강좌는 굉장히 오랜만이네요.. 제가 학업에 치이기도 했고 귀찮음이 앞서기에 강좌를 너무 늦게 작성했네요 ㅠㅠ 사실 50% 정도 글을 작성하고 임시저장을 해뒀는데 이어서 작성하려고 보니 글이 통째로 날아가서 멘붕을 조금 했습니다;; 티스토리 임시저장은 네이버에 비하면 너무 부족한거같아요 ㅠㅠ 어쨌든 제 강의를 읽어주시는 분들이 있기에 다시 강의를 작성하게 됬습니다. 오늘 배워볼 것은 배열입니다~ 여기까지 오신 분들은 사실 C언어를 60% 정도는 배웠다고 해도 괜찮죠 ㅎㅎ 참고로 배열은 시각적으로 이해하는 것이 좋기 때문에 최대한 그림을 추가해서 설명해보겠습니다. 또한 난이도가 올라가는 부분이기 때문에 편한 마음으로 시청하시길 권장드립니다. (물론 대충 보라는 뜻은 아니고요....

Article Thumbnail
[C언어 강좌] #11 정적변수, 지역변수, 전역변수, 외부변수, 레지스터 변수

프로그래밍 강좌/C 2020. 1. 28. 01:47

물론 변수는 여기서 배웠는데 왜 또배우나요? 라고 할 수 있습니다. 하지만 저번에 배웠던 변수에 대한 내용들은 기초적인 내용이고, 오늘은 그 변수가 메모리에 언제 생성되고, 언제 소멸되는지, 선언되는 위치, 종류에 대해 심화학습을 해볼것입니다. 우선 오늘 알아볼 변수는 총 5가지 입니다. 지역변수 (local) 전역변수 (global) 정적변수 (static) 외부변수 (extern) 레지스터 변수 (cpu) 종류가 많아보이지만 쫄 필요는 없습니다. 그럼 시작해보겠습니다. 지역변수 지역변수(Local Variable)는 중괄호 내부, 함수의 매개변수(Parameter)에서 사용되는 변수를 의미합니다. 중괄호 밖, 함수의 밖에선 그 효력을 발휘할 수 없습니다. 지역변수에서 지역은 중괄호 내부, 함수의 내부..

Article Thumbnail
[C언어 강좌] #10 함수(Function)

프로그래밍 강좌/C 2020. 1. 18. 00:50

안녕하세요 파일입니다. 오늘은 반복 작업을 편하게 해주는 함수에 대해 알아보겠습니다. 시작에 앞서 강의가 벌써 10강까지 제작되었습니다. 끝까지 열심히 따라 해 봅시다. 메인 함수 #include int main(){ //main 함수 정의 printf("Hello C World"); return 0; } #2강에서 main() 함수에 대해 소개한 적이 있습니다. 기억나시나요 ^^ 항상 프로그램 작성할 때마다 int main() 요건 습관처럼 써줬습니다 main 함수는 이름 그대로 프로그램이 실행될 때 가장 먼저 실행되는 "함수"입니다. 그럼 이제 다른 함수를 만들어보겠습니다 함수의 정의 함수는 왜 필요할까요? 아래 코드를 한번 봅시다. #include int main(){ //main 함수 정의 int..

Article Thumbnail
[C언어 강좌] #9 조건문 (If, ElseIf, Switch)

프로그래밍 강좌/C 2020. 1. 8. 19:48

안녕하세요. 파일입니다 오늘 알아볼 것은 조건문입니다. 조건문은 따로 알아보진 않았지만 앞에서 자연스럽게 사용을 했습니다(If문) 오늘은 If문 이외에도 다른 조건문들을 알아보고 사용법을 알아보겠습니다. If문 #include int main(){ if(조건){ 실행식 } return 0; } If라는 영어단어의 뜻은 '만약'입니다. 프로그래밍에서 if 역시 조건을 따지는 데 사용합니다. 위는 if문의 사용예제입니다. if(조건)이고 조건 안의 값이 참이면 중괄호 안의 코드가 실행됩니다. #include int main(){ int n; printf("숫자를 입력해주세요 : "); scanf("%d", &n); if(n % 2 == 0) printf("짝수입니다"); return 0; } >>> 10 1..

Article Thumbnail