C언어

    [C언어] 비트필드, 공용체에 대한 개념.

    비트필드 - 구조체가 가진 멤버를 비트 단위로 사용한다. - 비트필드를 정의할 때는 멤버 이름 다음에 :을 쓰고 비트 수를 적어주면 된다. - 메모리에 할당할 때, 첫 번째 멤버를 최하위 비트(LSB)에서부터 할당한다. - 비트필드의 멤버에 주어진 비트로 표현 가능한 범위 밖의 값을 저장하면 오버플로우가 발생한다. - 비트 필드도, 구조체와 같은 방법으로 사용한다. 공용체 - 공용체는 여러 멤버들이 메모리를 공유해서 사용한다. - 공용체를 정의하면 공용체도 구조체 처럼 새로운 데이터형이 된다. - 공용체 변수를 초기화할 때는 첫 번째 멤버의 초기값만 지정한다. - 공용체의 멤버에 접근할 때도 . 또는 -> 연산자를 사용한다. - 공용체 변수의 멤버들은 모두 같은 주소에 할당된다. - 공용체의 크기는 고용..

    [C언어] 구조체 배열에 대한 개념.

    구조체 배열 - 같은 구조체형의 변수를 여러 개 사용하려면, 구조체 배열을 선언한다. 구조체 배열을 초기화 하려면, { } 안에 배열 원소의 초기값을 나열한다. 구조체 변수의 주소를 저장하는 포인터 구조체 포인터 - 구조체 포인터로 구조체의 멤버에 접근할 때는 -> 연산자를 사용한다. - 구조체 변수로 멤버에 접근할 때는 . 연산자를 사용한다.

    [C언어] 포인터와 배열에 관한 개념 정리.

    ★ 포인터와 배열 - 인덱스 없이 배열명만 사용하면 배열의 시작 주소를 의미한다. - 배열의 시작 주소를 구할대는 & 없이 배열명만 사용한다. - 배열명은 포인터인 것처럼 사용할 수 있다. 즉, 인덱스를 사용하는 대신 배열의 시작 주소로 포인터 연산을 하면 배열의 특정 원소에 접근할 수 있다. - 배열의 시작 주소로 초기화된 포인터를 이용해서 배열의 모든 원소에 접근할 수 있다. - 포인터 변수를 배열 이름인 것처럼 사용할 수 있다. 포인터와 배열의 차이점? - 배열이 메모리에 할당되고 나면, 배열의 시작 주소를 변경할 수 없다. - 포인터 변수는 값을 변경할 수 있으므로, 포인터 변수에 보관된 주소는 변경할 수 있다.

    [C언어]포인터 연산에 대한 개념 정리.

    ☐ 포인터 연산 - p+N은 p가 가리키는 데이터형 N개 크기만큼 증가된 주소가 연산의 결과이다. - p-N은 p가 가리키는 데이터형 N개 크기만큼 감소된 주소가 연산의 결과이다. '포인터'-'포인터' 연산은 두 포인터의 차를 구하는데 사용된다. 포인터에 대한 증감 연산(++,--)도, 포인터형에 의해 연산의 결과가 결정된다.

    [C언어] 포인터에 대해서 알아봅시다.

    포인터는, 주소를 저장하는 변수 입니다. 즉, 포인터는 다른 함수를 가리키는 화살표 같은 변수죠. 이를 이용해서, 특정 변수에 접근할 수 있도록 도와줍니다. 그리고 포인터변수의 크기는 모두 4바이트 입니다. /* 메인 및 헤더 생략 */ char* aaa; int* bbb; double* ccc; /*sizeof(ccc) 로 크기 출력가능, 포인터 변수는 항상 4바이트.*/ printf("aaa, bbb, ccc의 크기 : %d, %d, %d\n", sizeof(aaa), sizeof(bbb), sizeof(ccc)); 실행결과 aaa, bbb, ccc의 크기 : 4, 4, 4 이렇게 확인이 가능합니다. int aa1; int* pp1; pp1 = &aa1; /* aa1의 주소값을 포인터 변수 pp1에 ..

    [C언어]배열, 다차원 배열과 문자열에 대해서 알아봅시다.

    배열은, 빼놓을 수 없는 필수요소라고 할 수 있습니다. 우리가 보통, 5개의 정수를 입력받고자 한다면 5개의 정수형 변수를 선언해야 합니다. int a, b, c, d, e; /* 5개의 정수를 입력받기위한 5개의 변수 */ 하지만 배열을 이용하게되면, 같은 데이터형의 변수를 메모리에 연속적으로 할당시키고 같은 이름으로 사용할 수 있게 합니다. int arr[4]; /* arr[0] 부터 arr[3]까지 크기가 4인 배열 선언 */ 이렇게 배열을 사용하게 되면, arr[0], arr[1], arr[2]. arr[3] 이렇게 같은 함수의 이름으로, 번호를 지정해서 사용할 수 있습니다. 주의해야할 점은, arr[4] 라면, arr[0]부터 arr[3]까지 크기가 4인 배열을 선언 하게 되는 것 이므로 int..

    [C언어] 변수와 데이터형 알아보기.

    오늘은, 변수와 상수의 개념, 리터럴 상수, 매크로 상수, const 변수 및 C언어의 데이터형에 대해서 알아보려고 합니다. 데이터형에는, 문자형, 정수형, 실수형이 있고, 참고로 sizeof 연산자도 알아 보겠습니다. 변수는, 값이 변경될 수 있는 데이터이고 상수는, 값이 변경될 수 없는 데이터 입니다. 데이터를 보관해야 할 필요가 있다면, 변수를 사용해서 데이터를 보관합니다. 이렇게 변경될 수 있는 데이터는, 메모리(memory)에 저장이 됩니다. 여기서 메모리는, 연속된 데이터의 바이트(byte)들의 모임을 말합니다. 그리고 여기서 각 바이트(byte)들은, 주소를 갖습니다. 메모리에 저장할 데이터 값의 형식(type)에 따라, 메모리가 얼마만큼 필요한지 결정이 됩니다. 문자 하나를 저장하기 위해서..