2. C언어 기반의 C++ 2(윤성우 열혈강의 C++ 예제코드)
출처: 윤성우 열혈강의 C++ 예제코드
2.1. 새로운 자료형 BOOL
- bool자료형의 크기
#include <iostream>
int main(void)
{
int num=20;
std::cout<<"Hello World!"<<std::endl;
std::cout<<"Hello "<<"World!"<<std::endl;
std::cout<<num<<' '<<'A';
std::cout<<' '<<3.14<<std::endl;
return 0;
}
2.2. 참조자(REFERENCE)의 이해
- 참조자에 변수할당 후 참조자의 값을 변경
#include <iostream>
using namespace std;
int main(void)
{
int num1=1020;
int &num2=num1;
num2=3047;
cout<<"VAL: "<<num1<<endl;
cout<<"REF: "<<num2<<endl;
cout<<"VAL: "<<&num1<<endl;
cout<<"REF: "<<&num2<<endl;
return 0;
}
VAL: 3047
REF: 3047
VAL: 00A3F9EC
REF: 00A3F9EC
- 참조자에 배열 요소를 할당
#include <iostream>
using namespace std;
int main(void)
{
int arr[3]={1, 3, 5};
int &ref1=arr[0];
int &ref2=arr[1];
int &ref3=arr[2];
cout<<ref1<<endl;
cout<<ref2<<endl;
cout<<ref3<<endl;
return 0;
}
- 포인터 변수에 참조자 선언
#include <iostream>
using namespace std;
int main(void)
{
int num=12;
int *ptr=#
int **dptr=&ptr;
int &ref=num;
int *(&pref)=ptr;
int **(&dpref)=dptr;
cout<<ref<<endl;
cout<<*pref<<endl;
cout<<**dpref<<endl;
return 0;
}
12
12
12
2.3. 참조자(REFERENCE)와 함수
- reference를 이용한 변수 swap
#include <iostream>
using namespace std;
void SwapByRef2(int &ref1, int& ref2)
{
int temp=ref1;
ref1=ref2;
ref2=temp;
}
int main(void)
{
int val1=10;
int val2=20;
SwapByRef2(val1, val2);
cout<<"val1: "<<val1<<endl;
cout<<"val2: "<<val2<<endl;
return 0;
}
2.4. MALOC & FREE를 대신하는 NEW & DELETE
- malloc & free 이용한 메모리 할당과 해제
#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
char * MakeStrAdr(int len)
{
char * str=(char*)malloc(sizeof(char)*len);
return str;
}
int main(void)
{
char * str=MakeStrAdr(20);
strcpy(str, "I am so happy~");
cout<<str<<endl;
free(str);
return 0;
}
- new & delete를 이용한 메모리 할당과 해제
#include <iostream>
#include <string.h>
using namespace std;
char * MakeStrAdr(int len)
{
// char * str=(char*)malloc(sizeof(char)*len);
char * str=new char[len];
return str;
}
int main(void)
{
char * str=MakeStrAdr(20);
strcpy(str, "I am so happy~");
cout<<str<<endl;
// free(str);
delete []str;
return 0;
}
2.5. C++에서 C언어의 표준함수 호출하기
- header include define 시 c를 더하고 .h를 제거함
#include <cmath>
#include <cstdio>
#include <cstring>
using namespace std;
int main(void)
{
char str1[]="Result";
char str2[30];
strcpy(str2, str1);
printf("%s: %f \n", str1, sin(0.14));
printf("%s: %f \n", str2, abs(-1.25));
return 0;
}
