728x90
변수, 문자열 차이
C언어에서 문자열은 배열로 선언되었을 때 이미 메모리 주소를 가지고 있다. 이는 배열 이름 자체가 해당 배열의 첫번째 요소를 가리키는 포인터로 해석되기 대문이다. 때문에 문자열 입력 시 &를 문자열 변수에 붙이지 않는다.
반면에 변수는 메모리 주소가 아니라 값 그 자체를 의미하므로 입력을 받을 때 &를 붙여 해당 변수의 주소값을 전달해야 한다.
지역변수, 전역변수
지역 변수는 함수 내에서만 생성되고, 전역 변수는 프로그램이 처음 실행되면 메모리 공간에 할당되어서 프로그램이 종료될 때까지 메모리 공간에 남아있는 변수다.
함수 내에 static을 사용할 수 있는데 이는 지역변수의 특징과 전역변수의 특징을 함께 가지고 있다.
함수 내에 static을 붙이게 되면
1. 선언된 함수 내에서만 접근이 가능하다. (지역변수 특성)
2. 딱 1회 초기화되고 프로그램 종료 시까지 메모리 공간에 존재한다. (전역변수 특성)
728x90
'반도체, 임베디드 Study > C' 카테고리의 다른 글
C - 포인터 (0) | 2024.05.13 |
---|---|
C - 포인터, 이중포인터 Call-by-Value, Call-by-Reference (0) | 2023.03.28 |