일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 2차원배열
- 동적할당
- 42
- cout
- libft
- 구조체
- for
- phpmyadmin
- 42서울
- else if
- Class
- float
- 함수
- C++
- 42Seoul
- iF
- docker
- 포인터
- C언어
- vs코드 단축키
- list
- ft_server
- 자료형
- python
- nginx
- 패킹
- Double
- jupyter 단축키
- 42cursus
- While
- Today
- Total
목록분류 전체보기 (46)
Developer
변수 C++에서의 변수 선언도 C언어와 똑같다. 만약 C언어를 안배웠다면 아래 글을 참고하자! https://dphater.tistory.com/entry/2c%EC%96%B8%EC%96%B4-%EC%9E%90%EB%A3%8C%ED%98%95%EA%B3%BC-%EB%B3%80%EC%88%98-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EC%B6%9C%EB%A0%A5 또한 C++11부터는 변수를 초기화할 때 { }를 사용해 초기화 할 수 있다. int i=100; int i {100}; 위의 두 가지 초기화 방법은 완전하게 똑같은 코드이다. 자료형 변수를 선언할 때는 변수의 이름 앞에 자료형을 작성해주어야 한다. 자료형은 크게 정수형, 실수형, 문자형, 부울형이 있다. 정수형 short 2..
C++는 C언어에 객체 지향 프로그래밍 기능을 추가한 언어이다. C언어의 스타일은 절차 지향 프로그래밍인데 쉽게 말하면 순서에 따라 명령어를 수행하는 프로그래밍을 의미한다. 절차 지향 프로그래밍에서 가장 중요한 것은 주어진 작업을 프로시저(절차)들로 분리하는 것이다.C언어의 함수를 예로 들 수 있다. 그렇다면 객체 지향 프로그래밍은 무엇있까? 객체 지향 프로그래밍은 현실 세계의 모든 일들이 객체(object)와 객체사이의 상호작용을 통해 일어나는 것 처럼 소프트웨어도 객체 단위로 작성해 다양한 기능을 수행하는 객체들을 만들고, 객체들을 조합하며, 서로 상호작용하여 원하는 작업을 수행하는 방식이다. #include using namespace std; int main(){ cout
지금까지는 키보드로 입력받고, 화면으로 출력만 해보았다. 이제 파일로 부터 읽어오고, 파일로 출력하는 C언어의 파일 입출력을 배워보자. 파일에 입출력을 하기 위해서는 파일 포인터를 선언해 fopen함수로 원하는 파일의 포인터를 얻어야 한다. FILE *fp =fopen("test.txt","w"); 위의 코드는 test.txt 파일을 w(쓰기)모드로 열어 파일포인터 fp에 저장한 것이다. fopen함수는 파일 열기에 시작하면 파일 포인터를 반환하고, 실패하면 NULL을 반환한다. 파일 모드 기능 기능 설명 "r" 읽기 전용 파일을 읽기 전용으로 연다. 반드시 파일이 있어야 함 "w" 쓰기 전용 파일을 쓰기 전용으로 연다. 파일이 없다면 파일을 생성하고, 있다면 내용을 덮어쓴다. "a" 추가 파일이 있다면..
함수 포인터 함수의 이름도 포인터이므로 함수도 메모리 주소를 가지고 있다. 따라서 함수 포인터를 사용해 함수 자체를 배열에 넣거나, 매개변수로 넘겨줄 수 있다. 함수 포인터는 다음과 같이 선언할 수 있다. 리턴자료형 (*함수포인터이름)(매개변수자료형,매개변수자료형..); 위와 같이 선언한 함수 포인터는 리턴자료형이 같고, 매개변수자료형과, 갯수가 같은 함수를 가리킬 수 있다. #include int add(int a,int b) { return a + b; } int sub(int a, int b) { return a - b; } int main() { int fnum, a, b; int (*fp)(int, int)=NULL; scanf("%d %d %d", &fnum, &a, &b); switch (f..
이번에는 함수에서 배열을 매개변수로 사용해보자. 배열 매개변수 배열을 매개변수로 사용할 때에는 포인터를 사용하거나 변수뒤에 [](대괄호)를 붙혀주면된다. #include void f(int* a) { a[3] = 200; } int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; f(arr); printf("%d\n", arr[3]); return 0; } 코드1과 같이 배열의 이름은 배열의 첫 주소를 가리키는 포인터이므로 위와 같이 사용할 수 있다. 하지만 이렇게 작성하면 매개변수가 배열인지 함수만 봐서는 알기 어렵다는 단점이 있다. #include void f(int a[]) { a[3] = 200; } int main() { int arr[10] = { 1..
특정 기능별로 코드를 나누어 작성할 수 있도록 C에서는 함수기능을 제공한다. 이전까지 우리는 printf같은 C에 미리 만들어져 있는 함수를 사용했지만 직접 원하는 기능의 함수를 만들 수 있다. 함수 작성은 아래와 같이 할 수 있다. 리턴자료형 이름(매개변수){ 코드; } 리턴 자료형이란 해당 함수를 호출한 곳에 함수가 종료되었을 때 반환할 값의 자료형을 말한다. 만약 반환할 값이 없다면 void를 작성해 주면 된다. 매개변수는 함수를 호출한 곳에서 전달된 값이 저장되는 변수이다. 만약 매개변수가 없다면 괄호만 작성하거나 괄호 내부에 void를 작성해 주면 된다. 간단한 덧셈 함수를 만들어 사용해보자. #include int add(int a, int b) { return a + b; } int ..
지역변수 지역변수는 변수가 선언된 { }(중괄호) 내부에서만 사용이 가능한 변수이다. 중괄호로 묶인 부분을 블록(Block)라고 하는데 지역변수는 선언된 블록 내부에서만 사용이 가능한 것이다. (아직 함수를 배우지 않았지만 선언된 함수 내부에서만 사용할 수 있는 변수이다.) 다음 3가지 코드를 보며 변수의 범위를 알아보자. #include int main() { int a=3; { a++; printf("내부 : %d\n", a); } printf("외부 :%d\n",a); return 0; } main함수의 시작에 변수a를 선언하고 3으로 초기화했다. 블록의 내부에서 변수 a를 사용하지만 이 블록도 main함수의 내부이므로 정상적으로 변수 a를 사용할 수 있다. #include int main() { ..
이벤엔 멤버들이 가장 큰 자료형의 공간을 공유하는 공용체를 알아보자. 공용체 공용체는 구조체와 정의방법이 똑같다. 차이점은 구조체는 멤버변수 각각이 서로 자신의 공간을 차지하고, 공용체는 멤버변수가 공간을 공유한다. 공용체의 정의는 union키워드를 사용하며 아래와 같이 정의한다. union 공용체이름{ 자료형 멤버이름 자료형 멤버이름 자료형 멤버이름 }; 구조체와 마찬가지로 typedef로 별칭을 지정할 수 있고, .(점)을 사용해 멤버 변수에 접근할 수 있으며, 포인터도 사용할 수 있다.물론 포인터로 멤버 변수에 접근하려면 ->(화살표) 연산자를 사용해야한다. 그럼 멤버끼리 공간을 공유한다는 말이 무슨 말인지 알아보자. #include typedef union ex { char c; short..