본문 바로가기

코딩 농장/C 언어

(13)
VisualStudio 초기 설정 및 오류 해결 vs 에서 코드를 실행하면 자동으로 줄바꿈을 출력하고 "코드로 인해 종료되었습니다." 가 나타난다.해당 문구 출력시 프로그램 안에서 줄바꿈인지 자동 줄바꿈인지 혼동될 수 있어서 없애는 것이 좋다.도구 > 옵션 > 일반 > 디버깅이 중지되면 자동으로 콘솔 닫기 체크 ( 제일 마지막 줄 ) C4996 : 주로 scanf() 함수 사용 때 나타난다. 프로젝트 마다 설정해주어야 한다.프로젝트 속성 > c/c++  > 일반 > SDL 검사 '아니오' 설정프로젝트 속성 > c/c++ > 전처리기 > 전처리 정의 > _CRT_SECURE_NO_WARNINGS 추가 디버깅 사용단축키기능비고Ctrl + F7빌드수정한 파일이 있으면 다시 빌드F5빌드 + 실행수정한 부분이 없으면 실행만F9중단점 설정중단점(break poi..
C++ 프로그래밍 C++은 기존의 C언어로부터 객체 지향 프로그래밍을 지원하기 위해 만들어진 언어이다. C++은 효율적이면서도 크기가 작고 실행속도가 빠르며 호환성이 뛰어난 C언어의 특성에 추가로 객체 지향 프로그래밍 특성을 더하였다. 1. C++의 특징 a. 절차 언어(Procedural Language) 방식 : 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 된다. b. 객체 지향 언어(Object-Oriented Language: OOP) 방식 : 클래스( Class ) 라는 특성을 추가함으로써 객체 지향적인 언어 방식 표현 가능하다. c. 템플릿(Template)을 이용한 일반화 프로그래밍(Generic Programming) 방식 : 목적은 데이터 타입과 무관한 코드를 작성하는 것이다. ( 하나의 템플릿으로..
VisualStudioCode 개발환경 구축 (MinGW, JSON,gcc,compile) vsc C언어 개발환경 구축 : https://rasino.tistory.com/307 【 C 환경설정 】 VS code에서 C/C++ 코딩환경 구축하기 【 C 환경설정 】 VS code에서 C/C++ 코딩 환경 구축하기 요즘 파이썬(python)이나 자바(JAVA), javascript C# 등등 하이레벨 언어를 학습하던 사람들이 프로그래밍의 근간을 튼튼히 한다거나? 여러 가지 rasino.tistory.com MinGW란? : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sukjun135&logNo=40156579011 1. MinGW란? 1. MinGW란? MinGW는 마이크로소프트 윈도로 포팅한 GNU 소프트웨어 도구 모..
C언어 배열과 포인터 _ 2 (이중 배열 / 포인터) 시작하기 앞서 배열을 선언하는 포맷을 살펴보자. int a[] = { 1, 2, 3 }; int b[3] = { 1, 2, 3 }; int c[3] = {0}; int d[3]; → 배열 a[] 에 1, 2, 3 을 넣으면 '아 배열 a 의 크기는 3 이구나' 라고 인식한다. 따라서 배열의 크기를 생략해도 된다. → c[3] 의 원소를 0 으로 초기화 시켜주었다. 자동으로 c 값의 원소는 {0, 0, 0} 으로 된다. ({0} 으로만 써도 됨) → d[3] 배열을 생성해 주고 밑에서 초기화를 시켜주어 값을 넣어주어야 사용할 수 있다. int x[3]; int y[3][2]; → 첫번째 배열 x 는 '배열의 이름은 x 이고 배열 x 의 3개의 각 원소는 int 형이다.' 을 의미한다. → 두번째 배열 y는..
C언어 배열 / 포인터 연산 포인터 연산을 쉽게 이해하려면 아래 문장을 아는게 도움이 된다. "배열의 이름은 주소값으로 변환된다. 또한 포인터는 가리키는 것의 주소값이다." #include int main() { int a[3] = { 1, 2, 3 }; int* ptr = &a; return 0; } → 배열의 첫 번째 원소를 참조하는 표현식들은 아래와 같다. a[0] = *(a + 0) = *(ptr + 0) = ptr[0] a[1] = *(a + 1) = *(ptr + 1) = ptr[1] → *(a + 1) 과 *(p + 1) 에서 a, p 는 주소값이므로 뒤에 더해지는 숫자는 주소값으로 변환이 되어야 한다. 먼저 배열 a 의 원소들은 int 형이기 때문에 1 * 4bit 가 주소값에 더해진다. ptr 도 마찬가지이다. pr..
C언어 배열과 포인터 배열과 포인터를 선언하고 호출하고 함수의 매개변수로 전달하는데 너무 어려워서 정리를 한다. → 포인터를 설명하기 전에 알아야할(알면 좋은) 단어를 살펴보고 가자! 주기억 장치 : CPU 가 실행할 명령어 코드와 처리할 데이터를 저장하는 기억장치 메모리 : 주기억 장치는 1byte 단위의 공간마다 메모리 주소를 가진다. → 포인터는 메모리 상에 위치한 특정한 값의 주소값을 저장하는 변수이다. → 포인터를 이용해서 (주소값을 통해) 데이터에 접근할 수 있다. #include int main() { int a[3] = { 1, 2, 3 }; int* ptr = &a; /* int* ptr; ptr = &a; */ for (int i = 0; i < 3; i++) { printf("a[%d] 의 값은 : %d\..
C언어 연산자 C 언어의 연산자 중 / 와 % 를 써보자 #include int main() { int a = 12; int b = 4; int c = 5; printf("a / b = %d\n", a / b); printf("a / c = %d\n", a / c); printf("a %% b = %d\n", a % b); printf("a %% c = %d\n", a % c); return 0; } → / 는 나누기인데 a / c = 2.4 가 아니라 2 가 나온다. 이는 a, c 모두 int 형이라서 생긴 일이다. int 형인 a, c 는 결과를 int 형을 호출하는 %d 에 쓰여서 자동으로 정수부분만 출력이 된다. 이를 해결하기 위해서는 형변환을 해줘야한다. → % 는 printf 안에서 쓰기 위해선 두 번 써줘..
C언어 변수 선언 자주 쓰는 변수를 선언하고 사용해보자 #include int main() { char a = 'a'; int b = 3; float c = 1.0f; double d = 2.0; printf("char a : %c", a); printf("int b : %d", b); printf("float c : %f", c); printf("double d : %f", d); return 0; } → char a 에 문자를 할당하려면 'a' 처럼 작은 따옴표로 감싸준다. → float 인 값은 뒤에 f 를 붙여준다. ( ex 1.0f / 2.15f) → float, double 모두 printf 에서 %f 로 사용할 수 있다. scanf 로 각 변수들을 입력받아 출력해보자 #include int main() { c..