본문 바로가기
C언어/C언어 간단 개념 정리

13강, 14강 . 상수와 변수의 이해

by Dev dreamer 2023. 1. 11.

출처: 정혜경 판타스틱 자료구조 입문 (in C)

[무료] 정혜경 판타스틱 자료구조 입문 (in C) - 인프런 | 강의 (inflearn.com)

 

 

 

 

 

data 는 어디어 저장이 되어있을까 ?

 

상수 -> 프로그램 처리에 필요한 각종 자료를 말하며 프로그램 시작부터 끝까지 변하지 않는 값.

 

변수 -> 프로그램 실행 중에 상수 값을 기억시키고 그 값을 변경시키기 위해 Memory상의 임의의 위치에 필요 크기만큼 확보된 기억공간을 의미한다. 프로그램 실행 중에 변경 가능하다.

C언어에서 모든 변수는 반드시 블록의 선두에서 미리 선언되어야 한다.

 

C언어에서 3대 block

제어문 block, 함수 block , 서브 block

 

실행문이 나오기 전에 변수의 선언이 가능하다(subblock 제외)

 

 

a만 선언했을때 내부에는 임의의 garbage 값이 들어가 있따

 

a를 초기화 선언 했을때 그 선언이후 재 선언이 없으면

 

변수값은 바뀌지 않는다.

 

 

 

 

 

 

 

식별자(identifier)  사용자가 정의하여 사용하는 이름 예)변수명, 배열명, 사용자 정의함수명, 구조체 형명 등

 

단 main 은 이름변경 불가능 하다.

 

식별자 작성 규칙

 

 

영문자 대소문자, 밑줄 , 숫자 // 첫글자는 반드시 영문자나 밑줄이 와야 한다.

->첫글자에 숫자가 나오면 컴파일러가 정수로 인식함.

 

예약어(int, void, if) 및 main 함수명은 식별자명을 사용할 수 없다.

 

특수문자와 공백은 사용할 수 없다.

 

대문자와 소문자를 구분한다.( num, Num, NUM 등 모두 다르게 취급한다.)

 

한 영역 내에서 식별자명은 유일해야 한다.

하나의 코드 내에서 같은 이름의 변수 선언은 불가능하다.

 

입력한 데이터가 어디에 들어가야할지 컴파일러가 선택이 불가능.

 

 

 

 

 

void sub(int n)

{

 int a;(한블럭내에서만 같은 변수 안쓰면 다시 선언가능하다)

 int n;(전달인자에 n 이 선언되었는데 내부에 다시 n으로 선언이 가능할까? 

 

전달인자에서 n 이라는 변수로 실제로 선언한다. 그래서 결론은 불가능하다.

 

return;

}

 

일반적으로 변수명, 사용자 정의 함수명은 소문자를 사용하며, 매크로명은 대문자를 사용한다.

 

컴파일러나 리소스는 두개의 밑줄문자( _ _ )로 시작하는 변수명이나, 밑줄 문자와 대문자로 시작하는 변수명을 사용하므로 사용자는 이런 별자명의 사용은 피하는 것이 좋다.

 

 

 

댓글