자료형을 불러올때 별명(가명) 붙여주기

typedef,using을 이용한다
예를 들어 자료형 double중에 거리에 사용되는 double형을 

별명을 붙여 사용한다면 공통으로 사용된 자료형을 관리하기 쉽다.
또 복잡한 자료형에 사용하면 보기 좋고 사용하기도 좋다.

#include <iostream>
#include <cstdint>
#include <vector>

using namespace std;


int main()
{
	typedef double distance_t;
	//고정너비 변수
	std::int8_t i(97);


	//컴파일러입장에선 같다.
	double distance;
	distance_t distance2;

	//vector<pair<string, int>> 를 줄여사용하기
	typedef vector<pair<string, int>> pairlist_t;
	//using사용
	using pairlist_t1 = vector<pair<string, int>>;

	return 0;
}

구조체struct

 

하나의 자료형으로 복잡한것(사람정보)을 구현하기 어렵다.
구조체를 이용해 하나의 사용자 정의 자료형으로 구현할 수 있다.
여러정보집합의 다수개의 정보를 저장할때도 구조체가 좋다.

 

구조체안에 함수를 구현할 수 있다.
구조체안에 구조체를 구현할 수도 있다.
구조체 대입,구조체 반환값도 가능하다.


sizeof로 사용Byte를 알수 있다(정확하진않고 조금더 추가될 수 있다).

#include <iostream>
#include <string>

using namespace std;

struct Person
{
	int id;
	double	height;
	float	weight;
	int		age;
	//기본값 정의도 가능하다.
	string	name = "me";
	//구조체안 함수 구현
	void printPersonInfo()
	{
		cout << height << endl;
		cout << weight << endl;
		cout << age << endl;
		cout << name << endl;
	}
};

void printPersonInfo(Person p)
{
	cout << p.height << endl;
	cout << p.weight << endl;
	cout << p.age << endl;
	cout << p.name << endl;
}

int main()
{

	//사람1정보구현
	double	height;
	float	weight;
	int		age;
	string	name;
	//사람2정보구현
	double	height2;
	float	weight2;
	int		age2;
	string	name2;
	
	//구조체구현이 훨씬 간단하다.
	Person person1{1, 2.0,100.0,20,"me" };
	Person person2{2, 2.0,100.0,20,"you" };

	//구조체로 묶여있어 인자로 보내기도 편하다.
	printPersonInfo(person1);
	//구조체안에 함수 구현 출력하기
	person1.printPersonInfo();

	//구조체 대입하기
	Person copyP = person1;
	cout << &person1 << " copyP addr : " << &copyP << endl;

	//사용Byte알아오기
	cout << sizeof(copyP) << endl;

	return 0;
}

함수 포인터

- C언어에서는 함수의 이름을 이용해 특정한 함수를 호출한다.

- 함수 이름은 메모리 주소를 반환한다.

- 함수 포인터는 특정한 함수의 반환 자료형을 지정하는 방식으로 선언할 수 있다.

- 함수 포인터를 이용하면 형태가 같은 서로 다른기능의 함수를 선택적으로 사용할 수 있다.

- 사용법 : 반환 자료형(*이름) (매개변수) = 함수명;


실습내용

함수 이름은 메모리 주소를 반환

형태가 같은 서로 다른기능의 함수를 선택적으로 사용


실습결과


매개변수 및 반환 자료형이 있는 함수포인터

실습내용


실습결과


함수포인터를 반환하여 사용하기

실습내용


실습결과




구조체

- 여러 개의 변수를 묶어 하나의 객체를 표현하고자 할 때 구조체를 사용한다.

+ 배열과는 다름(배열은 동일한 특성을 가진 변수를 나열한것)

- 캐릭터,몬스터,학생,좌표 등 다양한 객체를 모두 프로그래밍 언어를 이용해 표현할 수 있다.


실습내용


구조체의 정의와 선언

- 하나의 구조체 변수만 사용하는 경우 정의와 동시에 선언을 할 수도 있다.

- 이 경우에는 전역변수로 사용된다.


실습내용

실습결과(위 2개의 실습내용 동일)



구조체 정의하기

- typedef 키워드를 이용한다.

- 익명구조체로도 사용가능하다.

- 구조체가 포인터 변수로 사용되는 경우 내부 변수에 접근할 때 화살표(->)를 사용한다.


실습내용


실습결과


+ Recent posts