728x90
본 내용은 Android 에서 C++ 을 연동하여 처리하는 것을 알아야 할 거 같아서 C 와 C++ 에 대한 기본 개념을 파악하고자 동영상 강좌를 들으면서 간략하게 필요한 부분을 정리해두는 것이라 체계적인 것과는 거리가 좀 있다.
Visual Studio 2019 Community 버전에서 테스트하고 기록해둔다.
체계적으로 차근차근 듣고자 한다면 두들낙서님의 C/C++강좌 https://www.youtube.com/results?search_query=C%2FC%2B%2B+%EA%B0%95%EC%A2%8C 를 참조하면 된다.
강좌 설명은 Visual Studio 2015 로 하는 것 같다.
C언어 기본 문법
#include <stdio.h> // # 전처리기
int main() {
printf("Hello, World!\n"); // \n 은 줄바꿈
printf("%d + %d = %d\n", 2, 3, 5);
printf("%f\n", 3.141592);
printf("%.2f\n", 3.141592); // 소수점 둘째짜리까지만 반올림해서 출력
printf("%g\n", 3.141592); // 실수 출력 (지수형태로도 출력)
printf("%c %c %c\n",'a','b','c'); // %c : 문자 출력(알파벳, 숫자, 몇몇 기호, \n)
printf("%s\n", "안녕하세요"); // %s : 문자열 출력 (문자들이 열거) - 한글 출력 가능
int a = 5; // int : 정수형 변수로 4 bytes(32비트) 공간을 차지한다.
int b = 3;
printf("%d + %d = %d\n", a, b, a + b);
int a1 = 5; // int : 정수형 변수로 4 bytes 즉 32비트 공간을 차지한다.
int b1 = 3;
printf("%d + %d = %d\n", a1, b1, a1 + b1);
int mok1 = a1 / b1; // 몫
int namuji1 = a1 % b1; // 나머지
printf("%d / %d = %d\n", a1, b1, mok1);
printf("%d %% %d = %d\n", a1, b1, namuji1);
float a2 = 9.8; // float : 실수형 변수로 4 bytes(32비트) 공간을 차지한다.
float b2 = 3.14; // float 는 오차가 발생하여 double 형을 많이 사용한다.
float hap2 = a2 + b2;
float cha2 = a2 - b2;
float mok2 = a2 / b2; // 나누기
printf("%f + %f = %f\n", a2, b2, hap2);
printf("%f - %f = %f\n", a2, b2, cha2);
printf("%f / %f = %f\n", a2, b2, mok2);
double a3 = 9.8; // double : 실수형 변수로 8 bytes(64비트) 공간을 차지한다.
double b3 = 3.14;
double hap3 = a3 + b3;
double cha3 = a3 - b3;
double mok3 = a3 / b3; // 나누기
printf("%f + %f = %f\n", a3, b3, hap3);
printf("%f - %f = %f\n", a3, b3, cha3);
printf("%f / %f = %f\n", a3, b3, mok3);
// 부동소수점(floating point)
/* 2진법
100110(2) = 1*2^5 + 1*2^2 + 1*2^1 = 38
int - 32bits(4bytes)
37 = 100101(2)
00000000 00000000 00000000 00100101 = 37
11111111 11111111 11111111 11111111 = -1
*/
/* 자료형 - 정수형, 실수형
정수형
char (1바이트) - 문자를 담는데 쓰임
short (2바이트)
long (4바이트)
long long (8바이트)
int (시스템에 따라서 자동 결정, 대체로 long)
실수형
float (4바이트)
double (8바이트)
unsigned, signed
unsigned int a;
unsigned double f;
void : 리턴 값이 없는 함수의 자료형
bool : 참, 거짓을 저장(= char)
*/
printf("%d %d %d %d\n", sizeof(int), sizeof(char), sizeof(float), sizeof(double));
// sizeof(x) : x의 크기를 알려 줌.
int a4 = 3.14; // 실수를 정수형 변수에 담을 수 없다. 소수점은 짤리고 3을 반환한다.
double b4 = 10;
printf("%d %f\n", a4, b4);
// 형변환 : 자료형을 다른 자료형으로 바꾸는 작업
int math = 90, korean = 95, english = 96;
int sum = math + korean + english;
double avg = sum / 3; // 정수형 sum 앞에 강제로 형변환 (double)sum 으로 하면 값이 달라진다.
printf("%f\n", avg); // 예상 93.666667, 결과 93.000000
// 정수 / 정수 = 정수, 정수 + 정수 = 정수
// 실수 / 정수 = 실수, 정수 + 실수 = 실수
// 실수 / 실수 = 실수, 실수 + 실수 = 실수
}
|
#include <studio.h>
int main()
{
// 포인터 크기는 64비트 컴파일시에는 8 byte = 84bit
// 32비트 컴파일시에는 4 byte = 32 bit
printf("void * sizeof : %d\n", sizeof(void*));
printf("char * sizeof : %d\n", sizeof(char*));
printf("int * sizeof : %d\n", sizeof(int*));
printf("long * sizeof : %d\n", sizeof(long*));
printf("float * sizeof : %d\n", sizeof(float*));
printf("double * sizeof : %d\n", sizeof(double*));
printf("===========================================\n");
printf("char sizeof : %d\n", sizeof(char));
printf("int sizeof : %d\n", sizeof(int));
printf("long sizeof : %d\n", sizeof(long));
printf("float sizeof : %d\n", sizeof(float));
printf("double sizeof : %d\n", sizeof(double));
}
|
배열
#include <stdio.h>
int main() {
// array
int arr[] = { 3, 1, 4, 7, 9, -3 };
for (int i = 0; i < sizeof(arr) / sizeof(int); i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
|
728x90
'C++ > C++ 문법' 카테고리의 다른 글
C언어 call-by-value 와 cll-by-reference 이해 그리고 Java (0) | 2019.11.18 |
---|---|
C언어/C++ 배열 포인터, 포인터 배열, 응용 (0) | 2019.11.16 |
C언어 포인터 이해 (0) | 2019.11.15 |
C언어 strcmp, strcpy_s, strcat_s (0) | 2019.11.14 |
C언어 2차원 배열 파스칼의 삼각형 (0) | 2019.11.14 |