본문 바로가기
  • 부자가 될 남자

C언어4

[C언어] 배열은 주소값이다. d배열이 주소값이라니 이게 무슨 허무맹랑한 소리인가 싶을 수 있다. 물론, 배열 안에는 값들이 들어있는 것이 맞다. 그러나, 우리가 정의한 배열의 이름. 그 이름에는 주소값 지정되어있다. 이해가 되지 않아도 좋다. 아래의 설명을 보도록 하자. 우리가 int a[5] = {1,2,3,4,5}; 라고 배열 a를 정의 및 초기화 했다고 해보자. 이때, 배열 a를 하나의 방 관점으로 본다면, 배열 a의 각각의 인덱스(a[0], a[1], ... 과 같은 것)들은 배열 a 안의 또다른 방이라고 생각할 수 있다. 그러니까, 내가 말하고 싶은 바는 무엇이냐면 배열 a라는 것에도 주소가 있고, 그 배열 안의 인덱스들에도 따로 주소가 존재한다는 것이다. 그렇기에 배열의 이름은 주소값이다. 한가지 코드를 보며 이해해보도록.. 2023. 5. 18.
[C언어] 포인터 - 정의, 연산자, 선언, 상호관계성 포인터란? c언어에서 포인터란 주소값을 저장하는 변수이며, '포인터 변수' 라고도 부릅니다. char형 변수가 문자를 저장하고, int형 변수가 정수를 저장하는 것처럼 포인터는 주소값을 저장합니다. int n = 10; int *ptr = &n; printf("%d, %d", ptr, *ptr); 위의 코드에서, *prt = &n이라고 하여 마치 *ptr이라는 변수에 n의 주소값이 들어간 것처럼 보이나, 결과를 보면 알 수 있다시피, [*포인터_변수명 = 주소값]과 같이 포인터 변수를 초기화하더라도 포인터_변수명에는 특정 주소값이 들어가는 것이고, *포인터_변수명에는 특정 주소값내의 특정 값이 들어감을 알 수 있다. 포인터 연산자 C언어에서 포인터와 연관되어 사용되는 연산자는 다음과 같습니다. 1. 주소.. 2023. 5. 16.
[C언어] 반환값 return에 대하여 반환값이란, 함수가 실행된 이후에 함수의 잔여물이라고 생각하면 된다. 바퀴벌레가 죽으면 알을 깐다는 말이 있다. 반환값은 알과 같은 존재라고 생각하면 된다. 바퀴벌레가 죽는다? => 함수 내의 코드가 모두 실행됨. 바퀴벌레가 알을 낳는다? => 함수에게 값이 주어진다. 한가지 예제를 통해 이해시켜보겠다. *참고로 반환값이 존재하는 함수는 반환형 int로 함수를 정의하며, 반환값이 존재하지 않는 함수는 반환형 void로 함수를 정의한다. #include int function_with_return() { printf("반환값이 존재하는 함수입니다.\n"); return 10; } int main(void) { int num = function_with_return(); printf("num의 값은%d 입니.. 2023. 5. 15.
C언어 switch case문 switch case문의 활용 경우 switch case문은 다음과 같은 경우에 사용되는 것 같다. - 특정 변수의 값에 따라 반환되는 행동이 다른 경우 switch case문의 문장 구조 switch (변수) { case (변수값): 실행할 코드; break; case (변수값): 실행할 코드; break; case (변수값): 실행할 코드; break; } // 앞서 말했듯이 break는 거의 필연적이라고 보면 된다. switch case문의 특징 switch case문에서 각 경우에 break; 를 넣어주는 것은 필연적이라고 보면 된다. 만일 break;를 넣지 않는 경우, case가 실행된 이후 남은 나머지 모든 경우를 실행해 내기 때문이다. 아래의 코드를 보면 쉽게 이해가 가능하다. #inclu.. 2023. 5. 15.