C언어 3주차

2025. 3. 24. 16:28·c프로그래밍/Class
반응형

https://www.yes24.com/Product/Goods/117931721

출처

 

Smile Han의 C언어 프로그래밍 - 예스24

Smile Han의 C언어 프로그래밍

www.yes24.com

 

stdio 와 main

printf("asd");​

c에서 이렇게 한줄만 쓰면 작동이 안된다

파이썬은 가능한데 자바랑 c는 안된다..

 

error C2440: '초기화 중': 'const char [4]'에서 'int'(으)로 변환할 수 없습니다.

F4로 디버깅을 하면 위의 문구가 출력 되는걸 볼수있다

int main() {
	printf("asd");

}

이제 int 메인을 시작해 안에 프린트 문구를 넣으면

error C3861: 'printf': 식별자를 찾을 수 없습니다.
 error C2059: 구문 오류: ';'
error C2059: 구문 오류: '}'
error C2143: 구문 오류: ';'이(가) '}' 앞에 없습니다.

이렇게 오류가 나온다.

 

#include<stdio.h>

int main() {
	printf("asd");

}

맨 윗줄에 #include 포함한다 <stdio.h> std는 스탠다드 io는 입출력

을 넣어주면 정상 작동한다

 

#include<stdio.h>

int main() {

	return 0;
}

이게 C언어의 기본 틀이 되는데 

C 언어 표준에서 main 함수의 반환 타입을 명확하게 int로 규정하고 있기 때문에 이렇게 써야하며 

 

운영체제는 프로그램이 종료될 때 정수 값(종료 코드)을 기대하고

이 값으로 프로그램의 실행 성공 여부를 판단합니다.

보통 0은 성공, 0이 아닌 값은 오류를 의미함

 

메인함수는 중요하지만 모든 함수에 딱 한번만 존재해야한다

c언어의 시작점이기때문이다.

정리하면 c언어는 메인에서 시작하니까 꼭 main이 있어야하며 한개만 있어야한다

 


 

예약어(reserved word, keyword)

- 컴파일러에 의해 미리 의미가 정해져 있는 32~44 개의 단어

- 항상 소문자로만 사용(C99 이전)

- C99에서 추가된 예약어

 

ex) inline, restrict, _Bool, _Complex, _Imaginary

 

c언어는 대문자와 소문자를 구분한다 

항상 유의해서 사용해야한다.

 


토큰(token) 과 구두점

 

- 토큰 

 - C프로그램을 구성하는 기본 단위

 - 예약어(reserved word, keyword):int, if등 44개

 - 연산자(operator) : + . / 등 40개

 - 구두점(punctuator) : 변수, 함수, 배열, 구조체 등의 이름

 - 리터럴(literal) or 상수 (constant) : 10, 3.5

 - 문자열(string) : "hello word"

 

- 구두점

 - 토큰을 구분하기 위해 사용하는 기호로 50여 개가 있는데 40여 개는 연산자로 사용

 - [], {}, (), *, = .......

 


C언어 구두점 및 기호 표

구두점 명칭 용도 예

[ ] bracket, 대괄호 배열크기 지정 char ch[10];
{ } brace, 중괄호 블록(제어문, 함수)<br>구조체, 틀<br>배열 초기화 if(x>y) { }<br>int num[3]={1, 2, 3}<br>struct SCORE { };
( ) parenthesis, 소괄호 제어문의 조건식<br>함수의 매개변수 목록 if(x>y)<br>printf("AAA");
* asterisk, 별표 포인터 변수 선언 char *name;
, comma, 쉼표 변수, 함수 선언<br>함수의 매개변수 나열<br>배열 초기화 int x,y;<br>sum(x,y);<br>int num[3]={1, 2, 3}
; semicolon, 세미콜론 문장의 끝 for문의 구성 구분 int num;<br>for(i=0;i<10;i++)
= equal sign 변수, 배열 초기화 int num[3]={1, 2, 3}
: colon, 콜론 goto문에서 분기하는 레이블<br>case문의 레이블 다음 AAA:<br>case 0 :
... ellipsis, 생략부호 함수원형에서 매개변수 생략 int printf( const char *format [, argument]... );
# sharp, 샵 전처리기 #include<br>#define

 

 


주석문(comment)

- 프로그램 중에 설명문을 작성 할 때 사용하는 문장

- 프로그램의 수행과 무관하게 프로그램의 목적, 수행과정, 알고리즘에 대한 설명

- 자신이나 다른 프로그래머에게 프로그램의 이해를 돕기 위한 설명문

- 컴파일러는 무시하는 부분

- "/*"로 시작하고 "*/"로 종료하며 사이에 있는것들은 주석처리 된다.

 

 

#include<stdio.h> //std io 스탠다드 아아오
	
int main() { // 메인함수 시작부분이며 int
	printf("aaaaaaa"); // 프린트문
	return 0; // 리턴값은 0 c99이후로는 생략해도 되지만 관례상 쓰자
}

 

 

여러줄 주석 하는 방법

컨트롤 + / 

또는

컨트롤 + k + c 

편한건  컨트롤 + / 가 편하다.


printf() 함수 사용법

한글 폰트라서 원으로 나온다 \ = ₩

 

#include<stdio.h>

int main() {
	printf("c언어\n ");
	printf("\\""사용");
	return 0;
}

\n 은 엔터라고 생각하면된다

다음 프린트문이 다음 줄에 출력됨

여러번 사용해도 문제가 생기지 않는다.

C언어 백슬래시(\ 이스케이프 시퀀스) 관련 표현 표

- 이스케이프 시퀀스(escape sequence)는 탈출 문자 또는확장 문자열 이라고도 함

- 역슬래시 \ 와 영문자나 특수문자로 이루어진 문자 조합

\\ 백슬래시 문자열 내에서 백슬래시 자체를 표현 printf("C:\\Program Files\\");
\n 줄바꿈 새 줄로 이동 printf("Hello\nWorld");
\t 탭 수평 탭 삽입 printf("Name:\tKim");
\r 캐리지 리턴 커서를 현재 줄의 맨 앞으로 이동 printf("Hello\rWorld");
\" 큰따옴표 문자열 내에서 큰따옴표 표현 printf("그가 \"안녕\"이라고 말했다");
\' 작은따옴표 문자열 내에서 작은따옴표 표현 printf("It\'s my car"); 또는 char c = '\'';
\? 물음표 문자열 내에서 물음표 표현 printf("Hello\?");
\a 경고음 시스템 경고음 발생 printf("\a");
\b 백스페이스 커서를 한 칸 뒤로 이동 printf("Hello\b");
\f 폼 피드 페이지 넘김 printf("Page 1\fPage 2");
\v 수직 탭 수직 탭 삽입 printf("Line1\vLine2");
\0 Null 문자 문자열의 끝을 나타냄 char str[] = {'H', 'i', '\0'};
\xhh 16진수 16진수 값(hh)에 해당하는 문자 printf("\x41"); // 'A' 출력
\nnn 8진수 8진수 값(nnn)에 해당하는 문자 printf("\101"); // 'A' 출력
\\\\ 매크로 줄바꿈 전처리기에서 긴 매크로를 여러 줄로 나눌 때 사용 #define LONG_MACRO This is a very \\\n long macro

 


문제(리포트)


문제 1번

 


문제 3번

 

  • 매개변수: 함수에 값을 전달하는 변수이다 함수를 호출할 때 값을 넘겨줄 수 있도록 정의되는데 예를 들어, add(int a, int b)에서 a와 b는 매개변수이다
  • 반환값(리턴값): 함수가 처리한 결과를 반환하는 값이다 함수에서 어떤 작업을 하고 나서 그 결과를 돌려줄 때 사용됩니다. 예를 들어, int add(int a, int b) { return a + b; }에서 a + b가 반환값입니다.

문제 4번

기본적인 틀은 3가지가 있다

1. 헤더 #include<stdio.h>

2. main 함수

3. 기타 함수들 

#include<stdio.h> // 입출력 관련 함수 사용을 위한 헤더 파일

int main(void){
	printf("hello world) //프로그램 실행코드
    return 0; // 프로그램 종료 코드 
}

 


문제 5번

// <- 여기부터 주석

/* 사이에 주석 */

 

#include <stdio.h>

int add(int a, int b) {  // a, b는 매개변수
    return a + b;         // a + b가 반환값
}

int main() {
    int result = add(3, 5);  // 3과 5를 매개변수로 전달
    printf("결과: %d\n", result);  // add 함수의 반환값을 출력
    return 0;
}

 

 


전달인자(argument)와 매개변수(parameter)

 

  • parameter (매개변수): 함수가 정의될 때 함수에 전달받을 값을 받을 변수
  • argument (인수): 함수를 호출할 때 실제로 전달하는 값

 

  • 함수 정의에서 int add(int a, int b)에서 a와 b는 parameter입니다.
  • 함수 호출에서 add(3, 5)에서 3과 5는 argument입니다.
#include <stdio.h>

// 함수 정의, 매개변수 a와 b
int add(int a, int b) {
    return a + b;  // 매개변수 a와 b를 더한 값을 반환
}

int main() {
    int result = add(3, 5);  // 함수 호출, 3과 5가 인수 (arguments)
    printf("결과: %d\n", result);  // 결과 출력
    return 0;
}

 

 

 

 

 

쉽게 설명하자면

#include<stdio.h>
int main1(int a) { // <- main1(int a) 는 파라미터다
	printf("%d", a);
	return 0;
}

int main(void) {
	printf("asd");
	main1(10); // <- 여기서 main1을 호출하며 값을 10을 넣어준다(전달) 이게 아규먼트다
		return 0; 
}

 

 


정리

전형적인 C 프로그램

 C 프로그램의 기본 툴

 - ANSI C에서 권장하고 있는 표준 틀과 C99 이후 스타일

int main(void){
코드 작성
return 0;
}
int main(void){
코드 작성

}

 

- 예약어와 토큰

 - 토큰은 c프로그램을 구성하는 기본 단위

- 예약어, 연산자, 구두점, 식별자 , 상수 , 문자열

 

반응형

'c프로그래밍 > Class' 카테고리의 다른 글

C++ 5주차 CLASS  (0) 2025.10.01
C언어 7주차 Class  (0) 2025.04.21
C언어 6주차 CLASS  (0) 2025.04.14
C언어 4주차 class  (0) 2025.04.10
C언어 기초 2주차  (5) 2025.03.17
'c프로그래밍/Class' 카테고리의 다른 글
  • C언어 7주차 Class
  • C언어 6주차 CLASS
  • C언어 4주차 class
  • C언어 기초 2주차
NetStat
NetStat
netstats 님의 블로그 입니다.
  • NetStat
    NetStats
    NetStat
  • 전체
    오늘
    어제
    • 분류 전체보기 (41) N
      • JAVA (0)
      • SQL (0)
      • c프로그래밍 (16)
        • 예습 (8)
        • Class (6)
      • 파이썬 (4)
        • 기초 (4)
      • 환경설정 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    parameter
    C언어 기초
    dl emfd
    python3
    파이썬
    실수형
    리턴
    M1
    c언어
    argument
    캐스팅
    식별자
    else
    Python
    비쥬얼 스튜디오 설치
    파이썬 기초
    매개변수
    연산자
    elif
    정수형
    printf
    vscode
    파이썬 연산
    For문
    열거형
    문자형
    escape sequence
    sacnf
    이스케이프 시퀀스
    C
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
NetStat
C언어 3주차
상단으로

티스토리툴바