단순 대입 연산자


A = B

B 혹은 B 들어있는 값을 A 저장

메모리에 정보를 저장하는 .

기존에 저장된 값이 있다면 덮어쓰기가 됨.

대입 연산자의 왼쪽 : l-value(A)

오른쪽 피연산자 : r-value(B)

메모리의 쓰기가 일어남

l-value는 반드시 메모리일 .

 

 

ex) int A = 0;

        A = 3;

 

변수를 선언할 A 0으로 초기화.

그리고 변수 A 정수 3 대입하는 의미.

기존에 있던 0 정보는 지워지고

3 정보로 변경되어 저장됨.    

 

int A = 0 에서의

‘=’ 단순대입연산자가 아니라

변수 선언할 때의 문법상 필요에 의한 .

    비슷한 예로 ‘*’ 곱셈 연산자이지만

변수를 선언할 때는 포인터를 의미.

 



오류 코드들


1) 3 = 4;


정수형 상수 3 상수 4 저장할  없음.

l-value에는 메모리가 위치해야 .

상수는 쓰기가 허용되지 않고

또한 값을 저장할 있는 메모리도 아니다.

 


2) char Name[8];

       Name = 1;


배열의 본질은 주소이고

그 주소는 상수.

따라서 상수에는 값을 저장할 없다.

 

 

3) const : 한정어, 읽기전용화, 상수화


const int Data = 10;

Data = 20;

 

const 선언하면 해당 변수는

정보의 읽기만 있고

다른 정보를 저장할 없게 된다.

변수의 상수화가 .

10 = 20; 이라는 결과를

초래하기 때문에 오류가 발생.

 

int A = 0;

const int Data = 10;

A = Data;

 

변수 Data 상수화 하였지만

데이터의 읽기는 가능하므로

위와 같은 코드는 오류가 아니다.

변수 A 10 정보가 저장됨.

 

 

const 사용하는 이유는

메모리의 확보도 하고

정보의 훼손을 방지하기 위함.






** 잘못알고 있는 것이 있으면 댓글로 알려주시면 감사하겠습니다! **

'프로그래밍 > C언어' 카테고리의 다른 글

쇼트서킷(Short-circuit)  (0) 2018.07.02
단항 증감 연산자  (0) 2018.06.28
비트연산자  (0) 2018.06.28
자료형, 보수와 음수표현  (0) 2018.06.14
형식 문자열 입출력 함수 ( 스캔셋 ) (3)  (0) 2018.06.07

+ Recent posts