목록Language/C (30)
OneDev
헤더 : stdio.h 용도 : 문자열 출력 형식 : 기본적으로 printf 함수와 동일하다 puts(" 문자열 "); puts 함수는 문자열 출력 함수로, printf 함수와 유사하다. 문자열만 출력가능한 printf 함수라고 봐도 무방할듯 하다. (혹은 printf 가 puts 의 상위호환이라 봐도 될듯) puts함수와 printf 함수의 차이점은 다음과 같다 : (1) puts 는 문자열만 출력 가능 (2) puts 함수는 문자열 출력후 자동으로 줄바꿈을 시전한다 (2) 번 특징을 이용해 공백문자열을 출력하는 puts(""); 코드를 작성하여 한 줄 비우기(?) 를 할 수 있다. (이게 printf("\n") 보다 빠르다) (예시) #include int main(){ puts("문자열이 출력되었습..

▣ 목차 1. 포인터란? 2. 포인터 정의하기 3. 주소연산자(&) 4. * 연산자 5. 포인터에 타입이 있는 이유? 6. 상수포인터? 7. 포인터의 덧셈 8. 배열과 포인터 9. 배열을 가리키는 포인터 10. 포인터 배열 1. 포인터(pointer) 란? 포인터 : (메모리 상의) 특정 데이터의 주소값 을 보관하는 변수. (정확히는 시작 주소값) 포인터는 int 형 변수, char 형 변수와 같은 변수들과 전혀 다른 것이 아니다. int 형 변수가 정수 데이터를 보관하고, float 형 변수가 실수 데이터를 보관했던 것처럼 포인터는 데이터가 저장된 주소값을 보관하는 변수인 것이다. (참고) 포인터도 엄연한 변수이기 때문에 메모리 상에서 공간을 차지하고, 포인터 자신만의 주소를 갔고있다. 포인터 변수의 ..

지난 포스팅에서는 배열의 기본적인 것들에 대해 알아보았다. 이번 시간에는 2차원 배열을 포함한 고차원 배열에 대해 알아보자. 1. 2차원 배열이란? 2차원 배열은 배열을 원소로 갖는 배열 이라 생각하면 될듯하다. ("배열의 배열" 이라 생각하면 이해가 쉬울듯하다) 2차원 배열을 정의하는 방법은 다음과 같다. (배열의 타입) (배열 이름) [a][b] // a, b 는 배열의 크기(정수형) 이를 다음과 같이 이해하면 어떨까 싶다 : a : 2차원 배열 원소의 갯수는 a 개 이다 b : 각 원소는 b개의 원소로 이루어진 배열 // (예시) int arr[3][2] ; // 이 배열은 총 3개의 원소로 이루어져 있는데, 이 세개의 원소는 각각 2개의 원소를 가진 1차원 배열이다 이를 그림으로 나타내보면 다음과..

1. 배열이란? C 언어에서는 같은 타입의 여러개의 변수를 연속적으로 정의할 수 있는 방법을 제공하고 있는데, 이를 배열(Array)라 한다. 즉 배열은 같은 형(type) 을 가진 변수들의 집합 정도로 생각하면 될 듯 하다. 2. 배열의 기초 (1) 배열의 정의 배열을 정의하는 방법은 기본적으로 다음과 같다. ( 배열의 type ) ( 배열의 이름 ) [원소개수]; // 예시 int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 위의 예에서 arr 은 int 형 변수 10개를 원소로 가지는 배열인 것이다. 만약 int arr[10] 대신 char arr[10] 이라 썼다면 원소들은 모두 char 형 변수로 선언되었을 것이다. 또한, 위의 예에서 처럼 배열의 정이 옆에 = ..
switch 문의 기본 구조는 다음과 같다. switch ( 변수 ) { case 값1 : // 세미콜론(;) 이 아니라 콜론(:) 임에 유의 명령들 break; case 값2: 명령들 break; .... .... case 값n: 명령들 break; default:// if-else 구문에서 else와 같은역할 명령들 break; } (1) 맨 윗줄 ( 변수 ) 란에는 아래에 나오는 값1, 값2,.... 들과 비교할 변수가 들어가게 된다. (2) switch 문에 사용될 변수는 반드시 정수 데이터를 보관하는 변수여야 한다. 다시말해 변수 부분에 들어갈 수 있는 데이터 타입은 char. short, int, long 중에 하나여야 한다. 만약 float 이나 double 등의 데이터 타입을 가진 변수를 ..
앞선 포스팅에서우리는 for 과 while 반복문을 학습하였다. 반복문에서는 조건식을 통해 해당 반복문을 얼마나 반복할 지 알려주게되는데, 만약 조건식이 항상 참이라면 반복문을 영원히 돌리게된다. 참고로 반복문의 조건식에서 식의 값이 0이 아니거나, 아예 조건문이 명시되지 않은 경우 반복문은 조건을 항상 참이라 인식한다. for(int i = 3, i > 1;i++) // 조건식이 항상 참인 경우 for(;;) // 조건식이 아예 명시되지 않은 경우 // 위 두 경우 모두 반복문이 끝나지 않는 루프에 빠지게 된다 1. break break 는 이러한 루프를 빠져나가기 위한 명령어 이다. break 는 실행되기만 하면 조건에 상관 없이 반복문을 탈출하게 된다. (즉, break 아래의 내용들은 실행되지 않..
이번 포스팅에서는 for문과 비슷하면서도 다른 반복문인 while 반복문과 do while 반복문에 대해 알아보자. 1. while 문 while문의 기본 구조는 다음과 같다. //기본 형태 while (조건식) { 명령들 } // (예시) while (조건){ 명령1; 명령2; ... ... } "조건식" 에는 for 문에서 그랬던 것처럼 반복문을 언제까지 수행할것인지 알려주는 조건이 들어간다. int i=0; while (i

이번 포스팅에서는 반복문 중 하나인 for문에 대해 알아보자. ▣ 기본 구조 for 반복문의 기본적인 구조는 다음과 같다. 각각의 구성요소에 대해 살펴보자 (1) 초기식 : 초기식에서는 제어 변수가 초기화 된다. for문은 기본적으로 반복문이고, 반복문에서는 반복을 얼마나 해야할지 알려줘야 한다. C언어에서는 반복문이 얼마나 반복되어야 할지를 나타내기 위해 "제어변수" 라는 것을 도입하였다. 초기식에서는 이 제어변수의 초기값을 지정해준다. for(int i = 0;......) {} // 제어변수 i 의 초기값을 0으로 설정했다! 이하 내용에서는 편의상 제어변수를 i 로 표기하도록 하겠다. (2) 조건식 : 조건식에는 i 가 만족해야할 특정한 조건을 적어준다. for 반복문은 i 가 이 조건을 만족하는 ..
지난 포스팅에서 if 조건문에 대해 학습하였다. 이번 포스팅에서는 조건문의 조건 부분에서 주로 사용되는 연산자인 논리연산자에 대해 알아보자. 논리 연산자(Logical Operator)란 어떤 조건식의 참 거짓을 판별하며 참이면 1, 거짓이면 0을 반환하는 연산자이다. 논리연산자에는 크게 논리곱연산자(&&), 논리합연산자(||)가 있다. 1. 논리곱 연산자(AND) - && 두 값이 모두 참이이야 1을 반환하고 둘 중 하나라도 참이 아니라면 0을 반환한다. int n = 1, m = 3; if(n==1 && m==2) // m==2 라는 조건이 거짓이므로 0을 반환한다 if(n==1 && m ==3) // 두 조건 모두 참이므로 1을 반환한다 ※ 왜 번거롭게 & 대신 &&로 논리곱 연산자를 표현하는 것일..

1. if 조건문이란? 조건문이란 말 그대로 특정 조건을 만족할때 실행되도록 하는 문장이다. 조건문에는 여러가지가 있지만 이번 포스팅에서는 if 조건문에 대해 알아보도록 하자. 2. if 조건문의 기본 구조 if 조건문의 기본적인 구조는 다음과 같다. (1) if : if 조건문의 시작을 알리는 부분이다. (2) 조건은 소괄호() 안에 작성한다. 이 때 조건이 참이면 1을, 거짓이라면 0을 반환한다. 따라서 조건문을 if (1) 또는 if (0) 과 같이 작성할 수 도 있다. (3) 마지막으로 수행할 동작을 중괄호{} 안에 작성한다. ("명령" 이라고 한다) if 조건문은 if 문 속의 조건이 0(거짓)인지 1(참) 인지에 따라서 실행유무를 판별하는 조건문인것이다. 간단한 if 조건문의 예시를 보자. i..