반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- Keynote 표
- c
- booth multiplier
- keynote
- malloc
- booth algorithm
- LinkedList
- keynote 도형 회전
- 연산 가속기 설계
- 비동기 FIFO 구조
- asynchronous fifo
- C언어
- SPI mode
- 곱셈기 설계
- booth multiplier 설계
- FIFO 설계
- cadence conformal eco
- ARM
- LEC
- Sync FIFO
- 자료구조
- BSS
- Async FIFO
- ACK Polling
- keynote 도형 복사
- ISR
- Cortex-M3
- lec check
- keynote 사용법
- i2c
Archives
- Today
- Total
JINTBEAT Design Life
C언어 - 구조체(2) : 구조체, 배열, 그리고 포인터 본문
반응형
📚 구조체 배열의 선언과 접근
구조체 배열의 선언방법은 일반적인 배열의 선언방법과 동일하다.
구조체로 jint를 만들고, jint형 배열선언의 관계는 다음과 같다.
struct jint arr[10]
따라서, jint형 구조체 배열을 선언하면,
struct jint arr[4] ;
📚 구조체 변수와 포인터
jint형 구조체의 포인터 변수도 다음과 같이 선언하고 초기화한다.
struct jint *pptr = &pos ;
위의 jint형 포인터 변수 pptr을 이용해서 다음과 같이 구조체 변수 pos에 접근할 수 있다.
(*pptr).a = 10;
= pptr이 가리키는 구조체 변수의 멤버 a에 10 저장!
위의 문장은 다음과 같이 쓸 수 있다.
pptr->a=10;
즉, *연산과 .연산을 하나의 -> 연산으로 대신할 수 있다. 많은 프로그래머들은 편의상 -> 연산자의 사용을 즐긴다고 한다.
📚 포인터 변수를 구조체의 멤버로 선언하기
배열이 구조체의 멤버로 선언될 수 있듯이, 포인터 변수도 구조체의 멤버가 될 수 있다.
#include <stdio.h>
struct point
{
int xpos ;
int ypos ;
};
struct circle
{
double radius ;
struct point *center ;
}
int main(void)
{
struct point cen = {2,7} ;
double rad = 5.5 ;
struct circle ring = {rad, &cen} ;
printf("원의 중심 [%d, %d] \n", (ring.center)->xpos, (ring.center)->ypos);
return 0 ;
}
💡 포인터 변수도 구조체의 멤버가 될 수 있다.
💡 이로 인해서 구조체 변수 ring의 멤버 center가 구조체 변수 cen을 가리키는 형태가 되었다.
💡 구조체 변수 ring의 멤버 center가 포인터 변수이므로 ring.center를 대상으로 -> 연산을 해서, 구조체 변수 cen의 멤버에 접근해야 한다. 그리고 연산자의 우선순위 관계상 -> 연산자의 왼편에 있는 소괄호는 생략 가능하다.
반응형
'🖥️ - C language' 카테고리의 다른 글
| [C언어 기초] 초보자를 위한 C언어 enum 자료형 완벽 가이드 (0) | 2025.05.31 |
|---|---|
| C언어 - 구조체(4) : 함수로의 구조체 변수 전달과 반환 (0) | 2025.05.31 |
| C언어 구조체(struct)와 공동체(union) — 개념부터 시뮬레이션 활용까지 (0) | 2025.05.30 |
| C언어 - 문제 풀이(배열과 포인터) (0) | 2025.05.21 |
| C언어 공부 - 포인터 변수가 참조하는 대상의 변경을 허용하지 않는 const 선언 (0) | 2025.05.18 |