본문 바로가기

씨언어

[C] 0x0F 포인터(Pointer) From Evernote: [C] 0x0F 포인터(Pointer) 오늘은 C언어의 꽃이라고 할 수 있는 포인터에 대해서 알아보도록 하자 C언어가 H/W 제어권을 움직일 수 있는 강력한 언어가 된 이유라고 할 수 있다. 포인터는 다른 말로 메모리의 주소라고 할 수 있다. C 소스 코드에서는 '주소를 저장하는 변수'라고도 할 수 있다. 아래의 예제 코드를 살펴보자 int main() { int a = 7; double d = 3.14; char c = 'a'; return 0; } 일반 변수와 다르게 포인터 변수는 int*p ( = int * p = int* p = int *p ) 는 모두 동일한 변수선언이다. 즉, 공백을 무시하기 때문에 어떻게 선언을 하든 상관이 없는 것이다. int형 a나 double형.. 더보기
[c] 0x0D 함수(Function) From Evernote: [c] 0x0D 함수(Function) 프로젝트 + 설날 크리로 인해서 포스팅 정리를 못했다. 그렇다고 밀린것 부터 하자니 양이 너무나 방대한 관계로 일단은 오늘 배운 것 부터 정리해보기 시작했다. 오늘은 '함수'에 대해서 알아보자!! 일단 함수라는 단어(?)가 무슨말인지 알아봅시다~~! 함수 = 각각의 기능을 이야기하는 것이다. ▲이렇게 이야기하면 너무 쉬워보일 수 있으니 조금 더 자세하게 이야기하자면 1. 독립적인 일을 수행하는 프로그램의 한 단위 ( 비슷한 말로 '모듈' 이 있다.) 2. 프로그램을 관리하기 용이하다. 3. 반복적인 구문을 쉽게 처리할 수 있다. 함수가 C언어에서 어떻게 이루어져있는지 확인해보자!! return type 함수명 (함수) //함수의 머리부분(.. 더보기
[C] 0x07 조건문(Switch) From Evernote: [C] 0x07 조건문(Switch) 어제는 if 조건문 에 대해서 알아보았다. 어제에 이어서 조건문 Switch 에 대해 알아보자!! switch(변수값) { case 조건 : // 해당 조건에 만족할 경우 어떤 명령을 수행할지 명령문을 적어준다. break; } switch 문 : 변수에 해당하는 case 조건 ~ break문을 만나기 전까지 모두 수행한다. **주의사항** : if문과 다르게 case 조건 : => 이 부분에 비교 / 논리 연산자를 사용할 수 없다. 범위를 표현할 수도 없다. 그리고 조건에는 정수로 표현해야한다. (실수를 사용할 수 없다.) case 조건 : 의 예) case ch >= 'A' && ch > 31) { case -1 : puts(" - 값은.. 더보기
[C] 0x06 조건문(if) From Evernote: [C] 0x06 조건문(if) 오늘은 C언어에서 많이 쓰이는 조건문에 대해서 알아보도록 합시당. 말 그대로 이해하면 편하십니다. 해당 '조건'에 맞는 경우 if문을 통해 제어를 할 수 있다. if ( 조건문 ) { // 조건문이 참일 경우 이 부분에 있는 명령문을 실행 시킨다 } else // 조건문과 다른 경우 ( if문 안에 들어간 조건을 제외하는 모든 경우) => else 다음에는 조건문을 넣을 수 없다. 위에서 이야기 했듯이 if문의 조건을 제외하는 모든 경우를 말하는 것이기 때문이다. else 다음에 조건문을 사용하고 싶다면 else if ( 조건문) => 이런 형태로 if 문과 매칭해서 사용해야 한다. => 그러므로 조건이 여러개인 경우 사용하면 Good~~!! if.. 더보기
[C] 0x03 DataType(자료형) 오늘은 C언어를 공부하면서 여러가지 복잡한 대상을 단순화 시키는 ... 간략히 말하면 추상화라고 할 수 있겠죠? 추상화시켜서 크게 정수, 문자, 실수 이렇게 3가지 자료형( DataType ) 이 존재한다. 3가지 자료형을 살펴보면 아래와 같다. 자료형은 변수(variable)를 선언할 때에 반드시 필요한 것이므로 잘 알아두자. 간단하게 짚고 넘어가면 변수는 Data 를 저장할 공간의 이름을 말하는 것이다. = 자료형( DataType ) = - 정수 : 1, 99, -10 ... // short, int, long - 문자 : a, B, Z // char - 실수 : 정수 & 1.1, 99.9 => 정수와의 차이라면 소수점을 사용한다는 것이다. // float, double 위의 자료형을 이용해서.. 더보기
[C] 0x02 컴파일러(Compiler) , 링커(Linker), 이스케이프 문자열(Escape Sequence) ... = 컴파일러 = 컴파일러는 번역기라고 할 수 있는데 과연 '무엇'을 '무엇'으로 번역할까? 사람들이 알아볼 수 있는 '소스파일'을 기계가 알아볼 수 있는 '기계어파일'로 번역하는 것이다. 우리가 사용하는 언어 --> 기계어 | (통역을 해주는 역할) 이와 같이 컴파일(번역,통역)을 해주는 이유는? : '컴퓨터'라는 기계는 0과 1(이진수) 밖에 모른다. ON과 OFF 아니면 +, -밖에는 모르는 단순한 기계라고 할 수 있다. 반면 사람은 숫자나 문자로만 모든 것을 이해한다. 그래서 사람들은 자신들이 알아볼 수 있도록 숫자와 문자로 명령을 기록하는데, 이를 기계가 이해할 수 있는 언어인 기계어로 번역해주는 프로그램이 컴파일러입니다. 즉 ABC를 0과 1의 조합으로 바꾸어주는 것입니다. ex) first.c.. 더보기