#include <stdio.h>
//변수 목적
// 1) 값
// 2) 주소값
//변수의 형태
void exam1();
//1차원
void exam2();
//2차원
void exam3();
//const
void exam4();
void main()
{
exam4();
}
void exam4()
{
const int NUM = 1;
int num = 10;
int num1 = 20;
const int *p = # //?
int * const p1 = # //?
p = &num1; // ok...
//*p = 100; //error...
}
void exam3()
{
int num = 1;
int arr[2][3] = { 1, 2 };
int(*parr)[3] = arr;
int *p;
p = arr[2]; //?
*p = num * **parr; // 1 + 1
}
void exam2()
{
int num = 10;
int *pnum = #
int arr[3] = { 1, 2, 3 };
int *parr[3];
//========================================
arr[0] = num;
arr[1] = *pnum; // 0 = 0
arr[2] = arr[0] + arr[1];
//===========================================
parr[0] = #
parr[1] = pnum; //?
parr[2] = arr + 2; // &arr[2];
//========================================
*parr[2] = num;
*(parr[2] - 1) = num;
//======================================
}
void exam1()
{
int num; // int : 값
int *p; // int * : 주소값
int **pp; // int ** : 주소값
// 2차원 배열 저장 불가
// 1차원 포인터의 주소
int(*p1)[5]; // int ** : 주소값
// 열의 크기가 5인 2차원 배열 저장
int arr[5]; //1차원 배열 : 값
int* arr1[5]; //1차원 배열(차수2) : 주소값
int arr2[2][5]; //2차원 배열 : 값
}
'01.Bit 단기 > C' 카테고리의 다른 글
19_void포인터 (0) | 2018.04.28 |
---|---|
18_함수포인터 (0) | 2018.04.28 |
16_포인터배열 (0) | 2018.04.28 |
15_배열 (0) | 2018.04.28 |
14_함수의인자전달 (0) | 2018.04.28 |
댓글