본문 바로가기
반응형

Language & Framework & GIT/C10

[씨앤씨뿔] C/ 문자열 -1 문자와 문자열 문자열(String)은 연속된 문자들의 모임이다. C에서 문자열은 큰따옴포(" ")로 묶어주며, 문자열 끝에는 널 문자('\0')를 함께 저장한다. 위 언급처럼 끝을 나타내는 널 문자를 함께 저장하는 문자열을 널 종료 문자열(null-terminated string)이라고 한다. 문자열도 상수와 변수로 나뉘는데 상수는 문자열 리터럴이라고도 하며, 문자열 변수는 프로그램 수행 중에 변경될 수 있는 문자열이며 문자열 변수로 문자 배열을 사용한다. 프로그램 수행 중에 사용자로부터 입력받은 문자열을 저장하거나, 실행 중에 내용이 변경되는 문자열을 저장하려면 문자 배열을 사용해야한다. 프로그램 수행 중에 사용자로부터 입력받은 문자열을 저장하거나, 실행 중에 내용이 변경되는 문자열 저장 시, 문자 배.. 2023. 4. 11.
[씨앤씨뿔] C/ 포인터 - 2 포인터의 활용 배열과 포인터의 관계 (1)포인터의 연산 연산자 의미 p + N 주소에 포인터가 기리키는 데이터형의 크기xN만큼 더한다 p - N 주소에서 포인터가 가리키는 데이터형의 크기xN만큼 뺀다 p1 - p2 포인터가 가리키는 데이터형의 개수로 주소의 차를 구한다 ++p, p++ 주소를 포인터가 가리키는 데이터형 크기만큼 증가시킨다 --p, p++ 주소를 포인터가 가리키는 데이터형의 크기만큼 감소시킨다 p1 = p2 같은 형의 포인터끼리 대입 p1 == p2 주소가 같은지 비교한다 p1 != p2 주소가 다른지 비교한다 p[N] 포인터를 배열 이름인 것처럼 사용해 N번째 원소에 접근한다 *p p가 가리키는 변수에 접근한다 &p p의 주소를 구한다 p->m p가 가리키는 구조체의 멤버 m에 접근한다 .. 2023. 4. 8.
[씨앤씨뿔] C/ 포인터 - 1 포인터(pointer) : 주소(address)를 저장하는 변수 메모리에는 각 바이트를 구분하기 위한 주소(번지)가 있다. 32비트 플랫폼에서는 주소가 4바이트 크기이므로 포인터 변수의 크기도 4바이트이다. 64비트 플랫폼에서는 주소가 64비트, 위와 같이 8바이트이다. 플랫폼마다 주소 크기, 즉 포인터 변수의 크기는 차이가 있지만, 1byte = 8bits라는 것만 인지하자. 포인터는 다른 변수를 가리키는 변수로, 주소를 통해 다른 변수에 접근할 수 있도록 도와준다. 포인터 선언 ---------------------------------------------------------------------------------------------- 포인터 변수를 선언할 때는 데이터형과 *를 쓴 뒤 변수명.. 2023. 4. 6.
[씨앤씨뿔] C/ 배열 배열 : 할당값을 전부 사용할 때 필요 같은 데이터형의 변수를 메모리에 연속적으로 할당하고 같은 이름으로 사용하는 기능 배열의 원소(element) : 배열 안에 들어가는 변수 하나하나 인덱스(index) : 배열의 각 원소를 구분하기 위해 보통 대부분의 프로그래밍 언어에서 배열의 인덱스가 0부터 시작하듯이 C 또한 항상 0부터 시작한다. 원소마다 값을 따로 저장하여, 각각을 개별적인 변수처럼 사용할 수 있다. 배열의 모든 원소는 항상 연속된 메모리에 할당된다. 배열의 선언 배열을 선언하려면 배열 원소의 데이터형과 배열 이름을 쓰고 [] 안에 배열 크기를 지정한다. 배열의 크기는 배열에 들어있는 원소의 개수를 뜻한다. 형식 - 데이터형 배열명 [크기] ex - int num[5]; double data[.. 2023. 4. 4.
[씨앤씨뿔] C/ 함수 함수의 개념 함수(function)는 특정 기능을 제공하는 일련의 코드를 묶어서 이름을 붙인 것이다 종종 함수가 블랙박스로 비유되는데, 입력으로 데이터를 넘겨주면 일련의 작업을 수행한 다음, 결과를 내어 놓는데 처리 과정은 보이지 않기 때문이다. 이는 scanf나 printf 함수의 사용을 생각해보면 '블랙박스'라는 의미를 알 수 있다. 그렇다면 왜 함수가 블랙박스여도 되는가에 대한 궁금증을 가진다면, 전달 인자의 의미와 호출 결과만 알면 될뿐, 함수가 어떻게 입출력을 처리하는지 까지는 알 필요가 없기 때문이다. 여러 함수로 나누어 작성하는 이유는 코드의 재사용성과 유지 보수의 용이성 때문이다. 함수를 사용할 때의 장점 - 코드가 중복되지 않아 간결하고 알아보기 쉽다 - 한 번 작성해도 코드를 여러 번 .. 2023. 4. 4.
[씨앤씨뿔] C/ 제어문 씨뿔 오지게 많다.. 양이 뭐가 이렇게 많냐; 제어문이 뭘까? 제어문은 프로그램의 수행 순서를 제어하기 위한 목적의 문장이다. 제어문의 종류에는 조건문, 반복문, 분기문, 반기문이 있다. 조건문은 조건에 따라 문장을 선택적 수행, 반복문은 조건에 따라 문장을 반복해서 수행, 분기문은 실행의 흐름을 변경하기 위함 제어문의 종류 제어문의 종류 C 구문 설명 조건문 if 조건식이 참이면 문장을 수행 switch 정수식의 값에 따라 수행할 문장 선택 반복문 for 조건식이 참인 동안 문장을 반복 수행 while do while 분기문 break switch나 반복문을 빠져나간다 continue 반복문의 시작으로 돌아간다 goto 지정된 레이블의 문장으로 이동한다 return 함수를 호출한 곳으로 돌아간다 조건문.. 2023. 3. 28.
[씨앤씨뿔] C/ 연산자 연산자가 뭐가 다르겠나.. JAVA나 Python, C나 그게 그거지라고 했다가는 알아야 할 것도 다 놓치기에 오랜만에 한 번 더 보고 넘어간다. 연산자 : 연산에 사용되는 기호 피연산자 : 연산의 대상이 되는 값 수식(expression) : 연산자와 피연산자의 조합 모든 수식에는 반드시 값이 있고, 수식의 값을 구하는 것을 '수식을 평가(evaluate)한다' 라고 한다. 상수나 변수/연산자가 포함된 연산식도 수식이다. 리턴 값이 있는 함수 호출도 수식으로 볼 수 있다. 연산자를 이용하는 수식은 연산자와 하나 이상의 피연산자로 이뤄진다. 연산에 사용되는 기호를 연산자라고 하며 C언어는 다양한 종류의 연산자를 제공한다. 연산자는 피연산자의 개수에 따라서 단항 연산자(unary operator), 이항 .. 2023. 3. 27.
반응형