일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 패킹
- 함수
- 42서울
- Double
- 동적할당
- 42
- 42Seoul
- 2차원배열
- libft
- 42cursus
- list
- else if
- While
- for
- python
- phpmyadmin
- nginx
- Class
- vs코드 단축키
- ft_server
- iF
- 자료형
- 구조체
- cout
- C++
- float
- C언어
- docker
- jupyter 단축키
- 포인터
- Today
- Total
목록C언어 (28)
Developer
구조체란 서로 다른 자료형의 여러 변수들을 하나의 묶음으로 사용할 수 있게 해준다. 기본 자료형을 조합해서 새로운 자료형을 만든다고 생각하면 된다.학생의 정보를 관리하기 위해 구조체를 사용해 보자. 정보 항목은 이름, 전화번호, 학번 3가지만 하겠다. #include #include struct Student{ char name[30]; //이름 char phone_number[30]; //전화번호 int student_id; //학번 }; int main(){ struct Student s; strcpy(s.name,"김모군"); strcpy(s.phone_number,"010-xxxx-xxxx"); s.student_id=123456; printf("%s\n",s.name); printf("%s\n"..
C에서 제공하는 문자열 함수를 알아보자 문자열 길이 길이는 sizeof를 쓰면 되지 않나? 라고 생각할 수 있지만 만약 10크기의 배열에 "abc"문자열이 들어가 있다고 생각해보자! 실제 문자열 길이는 NULL문자를 제외하고 3이다. 하지만 sizeof연산자를 사용하면 배열의 크기인 10이 나올것이다. 따라서 문자열의 길이를 구해주는 함수가 따로 존재한다. 사용 방법: strlen(문자열포인터); #include #include int main(){ char s[10]="Study"; printf("%d\n",strlen(s)); return 0; } strlen(string length)함수는 string.h 헤더파일에 선언되어 있으므로 string.h를 포함해줘야 한다. 코드1에서 알 수 있듯이 ..
문자열은 말 그대로 문자의 나열이다. 지금까지 char형 변수에 문자를 하나씩 저장하여 사용하였다. char ch='a'; 문자 a를 ch에 할당 문자열은 이러한 문자들의 나열이다. 처음 C를 시작할때 printf함수로 출력한 "Hello World!"또한 문자열이다. 문자는 작은따옴표로 감싸주고 문자열은 큰 따옴표로 감싸주는것을 기억하자! C++에서는 string이라는 문자열을 저장하는 자료형이 따로 존재하지만 아쉽게도 C에서는 문자열을 저장하는 자료형이 따로 존재하지 않는다. C에서는 문자열을 처리하기 위해 포인터와 배열을 사용한다. 물론 char 자료형을 사용하여야 한다. 문자열과 포인터 #include int main(){ char *ch="Study"; printf("%s\n",ch); ..
포인터를 사용해 원하는 시점에 원하는 만큼 메모리를 할당할 수 있는 것을 동적 할당이라고 한다. malloc를 사용해 동적 할당을 할 수 있다. malloc는 stdlib.h헤더에 선언되어 있으므로 stdlib.h를 포함 시켜줘야한다. #include #include int main() { int *ptr; ptr = (int*)malloc(sizeof(int)); if (ptr == NULL)return -1; *ptr = 32; printf("%d", *ptr); free(ptr); return 0; } 코드1을 보면 포인터만 선언되어 있다. 이러한 포인터에 malloc로 int만큼의 크기를 동적 할당해주어 사용하였다. malloc는 아래와 같이 사용할 수 있다. malloc(byte단위 크기) ma..
배열은 같은 자료형의 변수가 여러개 필요할때 변수 선언과 관리 및 처리를 쉽게 도와준다. #include int main(){ int arr[10]; //크기가 10인 int형 배열 선언 int arr1[10]={1,2,3,4,5,6,7,8,9,10}; //선언 및 초기화 arr[0]=1; //arr배열의 0번 위치에 1을 저장 arr[1]=2; arr[2]=3; printf("%d\n",arr[0]); printf("%d\n",arr[1]); printf("%d\n",arr[2]); printf("%d\n",arr1[0]); printf("%d\n",arr1[7]); printf("%d\n",arr1[9]); return 0; } 위의 코드를 보면 대략적인 사용 방법을 알 수 있을 것이다. 배열은 자료..
변수를 선언하면 컴퓨터의 메모리에 변수의 공간이 생성된다. int a=100; 을 수행했을때 동작을 보자 그림과 같이 일정 공간 변수를 위해 공간을 확보하고 값을 저장하거나 사용한다. 그럼 변수a의 주소는 무엇일까? 이미 scanf를 배울때 변수의 주소를 얻는 방법을 배웠다. 바로 &(주소 연산자)이다. #include int main(){ int a=100; printf("%p\n",&a); return 0; } 포인터용 서식 지정자 %p를 사용해 출력해보았다. 위의 실행 결과에 나오는 a의 주소이다. 이 주소는 컴퓨터마다, 실행마다 매번 다르게 정해진다. 그리고 출력된 포인터를 보면 16자리 인것을 알 수 있다. 지금 컴퓨터가 64비트 컴퓨터 이기때문이다. 32비트라면 8자리로 나올것이다. 주소를..
반복문은 같은 코드를 여러번 수행하기위해 사용한다. for for(초기식; 조건식; 변화식) { 코드 } for(초기식;조건식;변화식) 부분을 루프 선언문이라 하고 중괄호 부분을 루프 본체라고 부른다. 만약 반복할 코드가 한 줄이라면 괄호는 생략 가능하다. for 반복문이 반복을 수행하는 동작 절차는 다음과 같다. 1.초기식과 조건식을 비교 2.참이라면 코드 실행 / 거짓이라면 루프 본체 아래의 코드 진행 3.변화식 적용 4.조건식 비교 2번 으로 돌아감 #include int main(){ int i; for(i=0;i
조건문이란 특정 조건일 때 코드를 실행 시키는 것이다. 예를들어 만약 3천원이 있다면 pc방에 간다와 같은 느낌이다. 조건문에는 if, switch ,삼항연산자가 있다. 비교 연산자 조건으로 비교연산자가 사용될 수 있다. 연산자 설명 변수1 == 변수2 변수1,2가 같다면 참 변수1 != 변수2 변수1,2가 같지 않다면 참 변수1 = 변수2 변수1이 변수2보다 크거나 같다면 참 주의할 점은 이상 이하를 표시하는 연산자인데 항상 등호(=)가 뒤에 나와야 한다. if 조건문 if조건문은 해당 조건이 참일 때 아래의 코드를 실행하는 것이다. if(조건) { 코드; } if(조건) 뒤에는 세미콜론을 붙이..