주관적인 세가지의 중점

 

이 언어는 어떤 자료형이 있지?

이 언어는 어떤 문법이 있지?

이 언어는 어떤 라이브러리가 있지?

+ 어떤 개발도구가 좋을까?

 

c 언어, 너가 궁금해졌다.

 

●자료형

단일 자료형이 있다.

int, char, void, ...

숫자, 문자, 공허의유산이 한국서버 기준 내일 아침 6시에 시작

자료형을 사용하여 변수를 하나 이상 선언할 수 있다.

int a;

int b,c,d;

자료형은 만들 수도 있다. main함수 위에 사용한다-> 어디서든 된다고 한다. 고맙습니다.

typedef  int  myint;

복합 자료형이 있다.

struct, ...

구조체는 선언하고 정의할 수 있다.

첫번째 방법이다. 다시 쓰기 위해서는 다시 선언해야 한다.

struct{

int x;

int y;

char a;

}structname;

두번째 방법이다. 다시 쓰기 위해서는 struct structname 이라고 써야 한다. 여기 헷갈린다.

struct structname{

int x;

int y;

char a;

}name;

세번째 방법이다. 자료형처럼 사용할 수 있다. 다시 쓸 때는 structname 만 쓴다. 이거 좋아.

typedef struct structname{

int x,y;

}

여기서 질문있습니다.. 이렇게 8가지가 헷갈리는데 쓰는거/안쓰는거랑 각각의 특징이 궁금합니다.

struct {
 int x,y;
};

 struct a{
 int x,y;
};

 struct {
 int x,y;
}b;

 struct a{
 int x,y;
}b;

 typedef struct {
 int x,y;
};

 typedef struct a{
 int x,y;
};

 typedef struct {
 int x,y;
}b;

 typedef struct a{
 int x,y;
}b;

포인터가 있다.

선언할 때 *를 붙이면 주소를 담기 위한 변수가 된다.

int* a, b;

int *a, b;

사용할 때 *를 붙이면 해당 주소 안의 값의 자리를 직접 사용하게 된다.

사용할 때 &를 붙이면 해당 변수의 주소를 가져온다.

int a;

int *b;

int* c = &a;

b = &a;

a=*b; // a는 자기 자신의 주소를 값으로 쓰게 된다. 마트료시카 같다

●문법

명령어는 세미콜론 ; 으로 끝나고, 구분한다.

;

변수를 선언할 때는 자료형을 쓰고 변수명을 쓴다.

int a;

변수를 사용할 때는 변수 이름만으로 사용한다. 변수에 값을 대입할 수 있다.

a = 3;

오른쪽에서 왼쪽으로 대입되며, 상수에는 값을 대입할 수 없다.

3 = a; // error

또한 c는 다음과 같은 다중 대입이 불가능하다.

a,b = 1,2;

함수를 선언할 때는 반환되는 변수의 자료형을 쓰고 함수명 우측에 소괄호의 짝 () 안에 전달할 매개변수를 써주어야 한다.

int  fx(int a, char b);

선언은 생략 할 수 있다. 그러나 c에서는 사용 시점보다 먼저 쓴것만 쓸 수 있기 때문에 선언을 사용한다.

 

또한, 함수의 반환형의 갯수는 1 이하이다. 만약 반환형을 다르게 해주고 싶을 때는 특별한 방법으로 해결할 수 있다.

(char, int) fx(int a, char b); // error

명령어의 블락을 만들고 싶을 경우 중괄호의 짝 {} 를 쓴다.

{

int a;

a = 3;

}

함수를 정의할 때는 선언문을 그대로 쓰고, 이어서 함수 내용을 아래에 블락으로 추가한다. 그리고 블락의 마지막에 값을 반환하는 return 명령어를 사용한다.

int fx(int a, char b)

{

int a;

a = 3;

return a;

}

함수의 반환형과 return 되는 값의 반환형은 같아야 한다.

int fx(int a, char b) // 'int' error -> change to char

{

int a;

char c;

a = 3;

return c; // or 'c' error -> change to a

}

매개변수도 함수 내에서 변수로 쓰이기 때문에 되도록 같은 이름으로 변수를 생성하지 않는다.

int fx(int a, char b)

{

int aa;

aa = 3;

}

함수를 사용할 때는 함수명을 쓰고 우측에 매개변수가 담긴 소괄호를 쓴다.

fx(1,'a');

반환형이 있는 함수는 함수의 결과를 변수에 대입할 수 있다.

=반환형이 있는 함수를 결과를 대입하기 위해 사용할 수 있다.

=반환형이 없는 함수도 있고, 반환형과 상관 없이 구동 자체만으로 쓰임새가 있는 경우도 있다.

a = fx(1,'a');

fx(1,'a');

이 때, 함수의 선언이나 정의 시에 작성한 파라미터의 종류와 순서를 지켜야 한다.

=순서가 바뀌었다는 것은 사실 각각의 파라미터의 자료형을 맞추지 않고 쓴 것이다.

a = fx('a',1); // error : 'a' is char, but 1st parameter is int. and, 1 is int, but 2nd parameter is char.

●라이브러리

c에서는 여러가지 라이브러리 함수가 있다.

 

사용자에게 변수를 받아서 저장하는 함수가 있다.

scanf("%d",&a);

원하는 문자열이나 변수를 출력하는 함수가 있다.

printf("출력되는 함수입니다. 이것은 그냥 문자열이고 %d 는 숫자 파라미터를 받아서 출력합니다.",a);

 

졸리다.. 로도는 안샀는데 이번주 로도번호가 그냥 1 7 13 22 32 41 이었으면 좋겠다.

돈 벌어서 슢컴터사고싶다.

c++해야되는데 c 하고있었다.

치매에너지 12등급이 된것 같다.

자살해야겠다..