161~172
구조체의 선언, 비트필드로의 선언
struct exam //데이터형의 이름
{
char name[10];
float volume;
int music;
};
struct exam2 //변수명과 함께 선언가능
{
char name[10];
float volume;
int music;
} car, bus; //exam2 car, exam2 bus와 동일
//비트 필드
struct examBite
{
unsigned int sn : 4; //4비트
unsigned int : 4; //사용하지 않는 4비트
bool good : 1; //1비트
}
//초기화
examBite biteMaster = { 12, true };
만든 구조체의 변수 선언, 배열선언, 대입
exam game;
exam fire;
struct exam water; //struct를 생략가능
exam play = //한번에 값들을 초기화하면서 변수를 생성 가능
{
"Hello",
1.55,
486
};
exam play2[2] = //배열로도 초기화 가능
{
{"Hello", 1.55, 486},
{"Hello2", 2.8, 345}
};
game = play; //같은 구조체라면 값을 대입가능
play2[0] = play2[1];
구조체 변수들의 사용
//기존 변수들과 같이 사용한다.
game.name;
game.volume;
game.music;
구조체의 포인터 사용
#include <iostream>
using namespace std;
struct test
{
int hi;
int hihi;
};
int main()
{
test tete = {3,4};
test *ptest;
test *ntest = new test;
ptest = &tete; //tete의 주소 대입
ntest->hi = 3; //값을 직접 대입가능
cout << ptest->hi << "\n"; //->로 하는 구조체의 멤버접근
cout << (*ptest).hi << "\n"; //(*구조체명).멤버 으로 표기하는 멤버접근
cout << ntest->hi << "\n"; //new로 만든 것도 동일
cout << (*ntest).hi;
delete ntest;
}
'C++ > Basic' 카테고리의 다른 글
메모리 활용 예시 delete 2 (0) | 2021.03.11 |
---|---|
메모리 활용 예시 delete (0) | 2021.03.11 |
포인터 (0) | 2021.02.22 |
char, string (0) | 2021.02.22 |
vector, pair, tuple을 vector에 넣기 (0) | 2021.01.08 |