create account

[C언어-막코딩] 4장 상수 by codingman

View this thread on: hive.blogpeakd.comecency.com
· @codingman · (edited)
$1.91
[C언어-막코딩] 4장 상수
# [C언어-막코딩] 4장 상수
-----

- 다운 사이트 : https://sourceforge.net/projects/orwelldevcpp/
- 웹컴파일러 : https://www.tutorialspoint.com/compile_c_online.php

-----
지난 시간에는 변수에 대해서 이야기 했었고 오늘은 상수에 대해 이야기 합니다.

## 1. 상수
-----
변수는 변하는 수이고 상수는 변하지 않는 수를 말합니다.

```
int a;
```
위와 같은 표현은 정수 a라는 변수를 선언하면 a의 값은 0이 될 수도 있고 1이 될수도 있고 다른 임의의 수가 될 수 있습니다.

```
a=0;
a=1;
a=2; 
```
이렇게 같은 a라는 변수이지만 a는 고정된 수가 아닌 임의의 수가 될 수 있습니다.

이와 반대의 고정된 수를 갖는 것을 상수라 합니다.

1,2,3,...

위와 같이 1은 1이지 0이 될 수 없고 10이 될 수 없습니다. 1이란 수는 1로 고정된 불변수의 수를 말합니다.

```
const int a=10;
```
위의 표현은 a는 10으로 고정된 값을 갖게 되는데 이 a는 상수가 됩니다. a는 10 외에 다른 임의의 수가 저장될 수 없습니다.

## 2. 상수의 표현
-----
상수는 고정된 불변의 수라고 했는데 방금 전 const 표현도 있지만 다른 표현도 있습니다.

```
#define A 10

const int B=10;
```
이렇게 두가지 표현을 할 수 있습니다. define의 경우는 컴파일 전처리과정에서  A라는 표현 위치에 10이라는 값이 저장됩니다. A 자체가 고정된 10으로 보면 됩니다. define or const 표현으로 변수이름을 상수로 사용 할 수 있습니다.

## 3. 코딩
-----
```
#include <stdio.h>
#define A 10

int main(int argc, char *argv[]) {
	const int B=20;
	int sum=0;
	
	sum = A + B;
	
	printf("%d + %d = %d \n",A,B,sum);
	
	return 0;
}
```
컴파일 전 전처리 과정에서 상수는 각 위치에 해당 값을 대입하게 됩니다.

```
sum = 10 + 20;

printf("%d + %d = %d \n",10,20,sum);
```
이렇게 컴파일이 된다고 보시면 됩니다.

**[결과]**
![a1.jpg](https://cdn.steemitimages.com/DQmPFeaH8bXZx4Nfudq53RMJXjuX23AJEt1chPwRBTeKsJX/a1.jpg)

위와 같은 코딩만으로는 저게 상수로 정확히 처리 되었는지 눈으로 확인 하기 어렵습니다.

직접 상수 위배 코딩을 해서 이게 상수임을 증명해야 겠죠.

### 잘못 된 상수변수 사용 코딩
-----
![a2.jpg](https://cdn.steemitimages.com/DQmdK5NeV4Ru9BNvg9uMmHsptfGyEFuuqTFvEHqSJSgJHb2/a2.jpg)

보시는 것처럼 B를 상수변수로 선언하고 B의 값을 갱신을 시도해 보았을 때 위와 같이 에러가 발생합니다. 

## 마무리
-----
오늘은 간단히 상수 표현에 대해 간단히 이야기를 해 보았네요. 위 두가지 상수 표현을 잘 기억했다가 나중에 활용하시기 바랍니다. 
사실 상수변수는 해당 값을 특정 고정된 이름으로 알기 쉽게 사용하기 위한 변수 입니다. True or False은 1 or 0의 값의 값을 갖는데 1이라고 그냥 숫자 상수를 쓰면 이 1이 어떤 의미인지 어떤 상황에서 쓰는지 알 수 없습니다. True라는 상수변수로 True 참이다라는 의미로 사용하기 위해서 사용하기 위해서 씁니다. 수학에서 PI는 3.14라고 고정 값을 가질 때 3.14라고 상수 숫자를 사용하면 3.14가 정확히 무슨 의미인지 알 수 없습니다. 그런데 PI라는 상수 변수를 사용하면 아 이 값은 수학에서 PI를 나타낸 값이구나 하고 쉽게 이해 할 수 있습니다.

상수 변수가 어떻게 사용하는지 아시겠지요.


---

#####  <sub> **Sponsored ( Powered by [dclick](https://www.dclick.io) )** </sub>
[![dclick-imagead](https://steemitimages.com/0x0/https://cdn.steemitimages.com/DQmSwkE4cySARFCKdemZWVwyk8dxh7HeDNiqwuVmWR3RBXE/Group%205.png)](https://api.dclick.io/v1/c?x=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjIjoiY29kaW5nbWFuIiwicyI6ImMtNC0tMTU1MzgxODUzMTgyNyIsImEiOlsiaS0yIl0sInVybCI6Imh0dHBzOi8vd3d3LmRjbGljay5pbyIsImlhdCI6MTU1MzgxODUzMSwiZXhwIjoxODY5MTc4NTMxfQ.GTsYXIV35wWjyWaSRMFEBmhkuAbsWuS0I5jVlgw0jGY)
👍  , , , , , , , , , , , , , , , , , , ,
properties (23)
authorcodingman
permlinkc-4--1553818531827
categorykr-dev
json_metadata{"tags":["kr-dev","jjangjjangman","busy","kr","kr-join"],"app":"busy/2.5.6","format":"markdown","community":"busy","users":[],"links":["https://sourceforge.net/projects/orwelldevcpp/","https://www.tutorialspoint.com/compile_c_online.php","https://www.dclick.io","https://api.dclick.io/v1/c?x=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjIjoiY29kaW5nbWFuIiwicyI6ImMtNC0tMTU1MzgxODUzMTgyNyIsImEiOlsiaS0yIl0sInVybCI6Imh0dHBzOi8vd3d3LmRjbGljay5pbyIsImlhdCI6MTU1MzgxODUzMSwiZXhwIjoxODY5MTc4NTMxfQ.GTsYXIV35wWjyWaSRMFEBmhkuAbsWuS0I5jVlgw0jGY"],"image":["https://cdn.steemitimages.com/DQmPFeaH8bXZx4Nfudq53RMJXjuX23AJEt1chPwRBTeKsJX/a1.jpg","https://cdn.steemitimages.com/DQmdK5NeV4Ru9BNvg9uMmHsptfGyEFuuqTFvEHqSJSgJHb2/a2.jpg","https://steemitimages.com/0x0/https://cdn.steemitimages.com/DQmSwkE4cySARFCKdemZWVwyk8dxh7HeDNiqwuVmWR3RBXE/Group%205.png"]}
created2019-03-29 00:15:33
last_update2019-03-29 00:16:45
depth0
children4
last_payout2019-04-05 00:15:33
cashout_time1969-12-31 23:59:59
total_payout_value1.441 HBD
curator_payout_value0.468 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length2,489
author_reputation23,188,231,710,844
root_title"[C언어-막코딩] 4장 상수"
beneficiaries
0.
accountdclick
weight1,000
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id82,126,267
net_rshares3,112,106,460,970
author_curate_reward""
vote details (20)
@jungjunghoon ·
상세한 설명 감사합니다~
properties (22)
authorjungjunghoon
permlinkre-codingman-c-4--1553818531827-20190329t015519040z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2019-03-29 01:55:18
last_update2019-03-29 01:55:18
depth1
children1
last_payout2019-04-05 01:55:18
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length13
author_reputation121,229,725,835,050
root_title"[C언어-막코딩] 4장 상수"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id82,128,719
net_rshares0
@codingman ·
즐거운 불금입니다. 주말 잘 보내세요.
properties (22)
authorcodingman
permlinkre-jungjunghoon-re-codingman-c-4--1553818531827-20190329t042636527z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2019-03-29 04:26:42
last_update2019-03-29 04:26:42
depth2
children0
last_payout2019-04-05 04:26:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length21
author_reputation23,188,231,710,844
root_title"[C언어-막코딩] 4장 상수"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id82,134,037
net_rshares0
@marsswim ·
행복한 하루보내셔요 천간님!!^^
properties (22)
authormarsswim
permlinkre-codingman-c-4--1553818531827-20190329t011953304z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2019-03-29 01:19:51
last_update2019-03-29 01:19:51
depth1
children1
last_payout2019-04-05 01:19:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length18
author_reputation35,639,311,179,218
root_title"[C언어-막코딩] 4장 상수"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id82,127,879
net_rshares0
@codingman ·
행복한 하루 되세요.
properties (22)
authorcodingman
permlinkre-marsswim-re-codingman-c-4--1553818531827-20190329t042616953z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2019-03-29 04:26:21
last_update2019-03-29 04:26:21
depth2
children0
last_payout2019-04-05 04:26:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length11
author_reputation23,188,231,710,844
root_title"[C언어-막코딩] 4장 상수"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id82,134,028
net_rshares0