일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- mac terminal command
- html charset
- docker example
- #C++ has~a
- #2차원배열
- hyperledger transaction
- #3차원배열
- html video
- #성적관리프로그램
- #다차원포인터
- 하이퍼레저패브릭
- git flow
- #C++ 연산자함수오버로딩
- #binary
- #자바상속#자바이즈어#is~a
- html5 new tag
- #bubbleSort
- html youtube
- html id
- html multimedia
- relative path
- border-box
- html object
- #CallByAddress
- #JAVASCRIPT
- 토큰경제
- #1차원배열
- #android activity
- html code
- html plug-in
- Today
- Total
A sentimental robot
구조체 포인터 본문
< 포인터를 이용해서 구조체 안의 멤버변수에게 값을 넣는 2가지 방식 >
1. (*p).kor = 100; 직접연산자 . ( dot )
주의사항 : .(dot)를 먼저 인식하기 때문에 항상 *가 ( )안에 들어가게!
2. p->kor = 100; 간접 연산자 ->
#include<stdio.h>
#pragma warning (disable:4996)
struct score {
char name[10];
int kor;
int eng;
int mat;
int total;
float avg;
};
void main()
{
struct score aa;
struct score *p; // 구조체 포인터 : 구조체를 가르키는 포인터 >구조체의 멤버를 자유롭게 사용할수 있다.
p = &aa;
printf("name input :");
scanf("%s", p->name);
rewind(stdin);
printf("kor input:");
scanf("%d", &p->kor);
printf("eng input:");
scanf("%d", &p->eng);
printf("mat input:");
scanf("%d", &p->mat);
printf("kor, eng, mat score:%d\t%d\t%d\n", (*p).kor, (*p).eng, (*p).mat); // 값 출력
(*p).total = (*p).kor + (*p).eng + (*p).mat;
(*p).avg = (*p).total / 3.f;
printf("total: %d\n", (*p).total);
printf("average :%f\n", (*p).avg);
}
간접연산자 이용
#include<stdio.h>
#pragma warning(disable:4996)
struct a {
char name[10];
int kor;
int eng;
int mat;
int sum;
float avg;
};
void main() {
struct a aa;
struct a *p = &aa;
printf("name input :");
scanf("%s", p->name);
printf("kor input :");
scanf("%d", &p->kor);
printf("eng input :");
scanf("%d", &p->eng);
printf("mat input :");
scanf("%d", &p->mat);
p->sum = p->kor + p->eng + p->mat;
p->avg = p->sum / 3.f;
printf("%s\t%d\t%d\t%d\t%d\t%f\n", p->name, p->kor, p->eng, p->mat, p->sum, p->avg);
}
직접연산자 이용
#include<stdio.h>
#pragma warning(disable:4996)
struct a {
char name[10];
int kor;
int eng;
int mat;
int sum;
float avg;
};
void main() {
struct a aa;
struct a *p = &aa;
printf("name input :");
scanf("%s", (*p).name);
printf("kor input :");
scanf("%d", &(*p).kor);
printf("eng input :");
scanf("%d", &(*p).eng);
printf("mat input :");
scanf("%d", &(*p).mat);
(*p).sum = (*p).kor + (*p).eng + (*p).mat;
(*p).avg = (*p).sum / 3.f;
printf("%s\t%d\t%d\t%d\t%d\t%f\n", (*p).name, (*p).kor, (*p).eng, (*p).mat, (*p).sum, (*p).avg);
}