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

7강, 8강, 9강. C프로그램 예제, C언어 괄호

by Dev dreamer 2023. 1. 11.

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

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

 

 

 

 

 

 

 

주석 부분

프로그램의 이해를 돕기 위한 해설등에 사용되며 컴파일 대상에서 제외됨( 기계어 코드로 변환 X)

Comment out: 실행 가능한 Code 를 일시적으로 실행되지 않게 막아놓는 것.

 

선행 처리기 명령어: 전처리(선행처리)가 처리하는 명령어

특징 : 반드시 #으로 시작한다.

 

stdio.h => printf()함수의 선언부.(보통 200여줄)

 

함수를 사용하기 위해서는

1.함수의 선언부

2.함수의 호출부

3.함수의 정의부 가 갖추어 져야 쓸 수 있다.

 

printf 함수의 선언부는 한줄.

하지만 헤더파일의 여러 기능들이 모두 적용되어야 제대로 작동할 확률이 높다.

따라서 해체해서 쓰지말고 해더파일 묶음을 가져와서 써라.

 

void => 값을 반환하지 않는 형태. 즉 return 값이 없다.

 

return 값 int

return 값이 0 임을 의미하는 것을 뭘까?

메인함수의 리턴값은 메인함수가 제대로 작성했는지 안했는지를 나타내는 지표

즉 0이 표시됨으로써 메인함수가 정상적으로 작동됐다라는 것을 의미하고

1~n 의 다른 정수가 나오면 리턴값이 잘못나오면 비정상으로 작동된것이다.

 

return 값 void 즉 리턴값이 없음.

 

메인함수는 void를 쓰면 안좋다. 메인에 void를 쓰면 비표준이다.

 

C언어의 표준에서 main 함수는 반드시 int 함수를 가지고 있다.

 

 

 

C언어에서 사용하는 괄호

 

<>괄호

헤더파일에서 <> include 할 때만 사용한다.

 

함수를 나타내기 위해 사용되며 , 수식의 우선순위를 변경할 때도 사용된다.

 

()소괄호

1. 전달인자는 () 소괄호로 묶어준다.

 

2. 수식의 우선순위를 정해주기 위해서도 소괄호를 사용함.

=>C 언어에서 소괄호는 우선순위 1순위이다.

C언어서는 원하는 우선순위를 정해주기 위해서 소괄호를 중첩해서 써줄 수 있다. 중, 대괄호는 우선순위와 연관 X

 

3. 제어문의 조건식을 감쌀 때.

if(조건식){

}

 

{}중괄호

: block 의 시작과 끝 표시, 또는 복합 데이터 형의 데이터 초기화 시에 사용된다.

 

1. 함수 block

 

 \n 줄바꿈 (개행문자)

a 가 10보다 작을때 block 내부 실행

else{}

else 뒤에도 block 으로 명령

 

 

 

 

 

 

2. 제어문(명령어) block

 

if나 else등의 조건 이후 명령문 부분에서 중괄호로 명령문을 내린다.

 

3. sub(noname) block

 

변수선언문은 함수의 항상 최상단에 나와야 한다.

변수선언 이후 실행문 이후 다시 변수선언문이 나오면 오류가 생길  수 있다.

 

그래서 함수내부에 하나의 sub block 을 생성하여 다시 그 안에서 변수를 선언하고 함수를 이어갈 수 있다.

 

sub block 안에서 선언한 ch 같은 경우 sub block 안에서만 내용이 유지되고 밖으로 나오면 ch 의 데이터는 사라진다.

 

 

복합 data형 (배열, 구조체, 포인터 등등)

*배열의 특징

1.동일한 자료형의 집합.

 

ary 어디에 저장되었는지 알 수 없기때문에 이러한 방식으로는 사용이 불가능함.

 

 

변수들이 할당되는 기억공간 => RAM

복습! RAM 메모리의 특징!

  • 1. 소용량(하드디스크에 비해서)
  • 2. 빠르다
  • 3. 컴퓨터를  껐다가 다시키면 사라진다(휘발성)
  • 4. Byte 단위로 주소가 부여되어 있다.

 

int 의 경우 4byte 의 공간으로 할당되어 있다.(ram 안에서의 주소는 byte 단위로 매겨져 있다.)

 

2. 연속된 기억공간에 할당.

 

3. 배열명은 곧 그 배열의 시작 주소 상수이다.

배열명은 그 배열의 시작 주소 상소 즉 ary 는 100번지의 주소를 나타낸다.

*%u 여기서 u는 unsigned int 를 의미함 => 부호없는 10진수

복습 ! d 는 ? decimal 의 줄임말로서 부호 있는 10진수 정수를 의미함.

 

그러면 왜 u 를 썼을까??

%u 는 양수만 찍히기 때문에 주소를 찍을때 주소는 항상 양수이므로 %u를 활용했다.

일단은 이렇게 선언만 해놓으면 어느 위치에 4의 공간씩 차지하고 생성된다.

내부값을 초기화 선언을 안해주면 그 안에 garbage 데이터가 들어가 있다.

이때 인트는 그냥 선언해주면 된다.

하지만 ! 복합데이터 형 같은 경우엔 only 중괄호를 통해서 선언해줘여만 한다,

 

 

3. 대괄호(array 연산자)

배열 선언 및 배열 요소 지정에 사용된다.

 

 

 

 

 

 

 

 

 

 

댓글