본문 바로가기

OLD26

[개탱][C][C++][2차원배열의 구현 & 사용방식] 2차원 배열 만드는 법 ㄴ Automatic allocation ( 함수에 전달을 할 때 1차원 배열로 계산을 해서 주소를 계산해야함 ) ( JAVA & C# 에서는 이 방식이 사라져버림 ) 1 2 3 4 5 6 7 8 9 10 #include int main() { int iArray[3][4] = { {1,2,3,4}, {11,12,13,14}, {101,102,103,104} }; // Automatic Allocation } cs 위처럼 구현을 해둔뒤 2차원 배열의 내용을 출력 & 각 행의 값을 더하는 함수를 만들어보자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3.. 2018. 1. 2.
[개탱][Call By Value][Call By reference] (예시 코드는 swap 함수로 a와 b의 값을 바꾸려고 하는 코드이다) Call By Value호출 시킨 값을 복사해와서 작업을 함.. [ 값에 직접적인 영향이 없음 ]123456789101112131415void swap(int A, int B);void main(){ int a, b; a = 30; b = 20; swap( a, b);} void swap(int A, int B){ int iTmp = A; A = B; B = iTmp;}cs int a, b 를 선언 후 a에 30을 대입, b에 20을 대입( a= 30, b = 20 )main 안에 있는 local value인 a와 b의 값을 복사를 해서 swap의 매개변수인 A, B 에 넣어주고 그 값으로 (A = 30, B = 20)안에 int 형.. 2018. 1. 2.
[개탱][C][지역변수와 전역변수] 지역변수 & 전역변수12345678910111213141516171819202122int a; // 전역변수 int main(){ int a = 100; // 지역변수 aa(); bb(); printf("Main 함수 내의 a 는 %d 입니다\n",a);} void aa(){ int a = 10; //지역변수 a++; printf("aa 함수 내의 a 는 %d 입니다\n",a);} void bb(){ printf("bb 함수 내의 a 는 %d 입니다\n",a); } Colored by Color Scriptercs 함수내부에서 어떠한 변수에 대한 연산이 진행될 때 전역변수와 지역변수가 둘다 정의가 되어있다면 자신과 가장 가까이에 있는 지역변수를 이용하여 연산을 진행하며전역변수만 존재하고 지역변수가 존재하.. 2018. 1. 2.
[개탱][C][전처리(preprocessor directives)][헤더파일 중복선언 방지] 헤더파일의 중복선언을 방지하기위해서전처리(preprocessor directives)로 와 같이 전처리를 실행하여 줍니다. ( _STACK_H 라는게 정의가 되어있지 않다면 #define 으로 _STACK_H라는걸 정의해주며 헤더파일을 한번 정의해준뒤 다시 이 헤더파일에 방문했을때 _STACK_H 가 정의되어 있다면 아예 안에 들어오지않고 무시하고 넘어가버린다 )[여러 사람이 전처리 매크로를 생성하는데 만약에 같은 이름으로 정의를 해줘버리면(이사람도 _A 라고하고 저사람도 _A라고 정의를 해버리면 어떠한 헤더파일에서 _A에 접근을 하면서 _A가 정의가 되고다른 헤더파일에 들어갔는데 어? _A가 정의되있네 ? 라고 하면서 사용을 해야하는 헤더파일이지만 접근을 하지않고 무시하고 넘어갈수도 있으므로 관례상_S.. 2018. 1. 2.
[개탱][C][변수 읽는법][Pointer][Double Pointer][함수 포인터][더블 포인터][포인터] 포인터.. 어려운거 하나도 없다! Pointer 란? 말 그대로 무엇인가를 가리킨다. Pointer를 정의 해줄 때 C언어에서는 Type 과 변수명을 선언하는 그 사이에 '*'를 적어줌으로서 ex) int* a;a는 가리킨다. 무엇을? int형 타입의 변수를 가리킨다.즉 자신보다 *개수가 하나 적은 타입을 가리킨다고 생각하자. 다시말해int* a 는 int* 보다 *개수가 하나 적은 int형을 가리키게 되는것이다. 뭐 더블포인터.. 이런게 많은데 다 똑같다 int** a;a는 가리킨다. 무엇을? 자신의 타입인int** 형보다 *가 한개가 적은즉 int*형을 가리키게 되는것이다. 자 그럼 하나더해서 char*** c;c는 가리킨단다. 무엇을? 자신의 타입인char***형보다 *가 한개 적은char**형을 .. 2018. 1. 2.
[개탱][C][분리 컴파일[Separate compilation]] 분리 컴파일[Separate compilation]123456789101112131415161718192021222324252627282930313233343536373839404142434445#include#include typedef struct stack{ int s[100]; int top;}STACK; // 이것은 구조체를 선언한 것. 정의X 선언O// 선언 :: declaration// 정의 :: definition void push(STACK* s, int data);int pop(STACK* s);int main(){ STACK s1; STACK s2; s1.top = -1; s2.top = -1; push(&s1,100); push(&s1,200); push(&s1,300); int x.. 2018. 1. 2.