눈으로 하는 코딩이 아닌! 직접 타이핑하는 코딩은 실력 향상에 엄청난 도움이 됩니다.




안녕하세요! 정선생이예요. 오늘은 변수에 대해서 알아볼까해요. 이전 게시글(이동)에서 아~~주 간단하게 정수형 변수를 선언하는 법을 배웠어요.


다시 한 번 더 설명하자면, 변수란 변하는 수를 뜻하는거예요. 앞서 써본 [    int a    ]를 정수형 변수 a라고 하죠.

변수 선언에는 주의점이 있고, 형식지정자라는게 같이 붙어있어요. 자료형이라고도 하구요. 보통은 자료형이라고 표현을 합니다.

  • 문자형 char
  • 정수형 short, int, long
  • 실수형 float, double
종류를 싹다 써드린 것은 아니고 자주 쓰이는 것을 알려드리는거예요.

정수형과 실수형에는 한 개가 아닌 여러개가 있네요. 메모리에서 차지하는 공간(바이트 수)이 차이점이죠.
차지하는 공간이 클수록 당연히 그 만큼 더 큰 수, 더 세밀한 수를 표현 할 수 있겠죠?

우리는 방금 6개의 형식 지정자를 배웠어요.

그렇다면 변수 선언은 다음과 같이 할 수 있어요.

  • char c;         // 문자형 변수 c 선언
  • short s;        // short 정수형 변수 s 선언
  • int i;            // int 정수형 변수 i 선언
  • long l;         // long 정수형 변수 l 선언
  • float f;         // float 실수형 변수 f 선언
  • double d;    // double 실수형 변수 d 선언
위와 같이 선언을 할 수 있네요. 그렇지만 변수명에는 정말 중요한 제한사항이 있어요.
  1. 다음 키워드는 변수명으로 사용할 수 없다.
  2.  for

    short 

    union 

    inline 

    auto 

    do 

    goto 

    signed 

    unsigned 

    break 

    double 

    if 

    sizeof 

    void 

    case 

    elase 

    int 

    static 

    volatile 

    char 

    enum 

    long 

    struct 

    while 

    const 

    extern 

    register 

    switch 

    continue 

    float 

    return 

    typedef 

    default 

     

     

     

    시작부터 해서는 안될게 많네요.. 그렇지만 이미 우리가 알고 있는 short, void, int, double, long, char, ... 등등 요런건 우리가 다른 의미로 사용하고 있는 것이죠? 이런 부분은 키워드라고해요. 다시말해서 이미 그 기능적 의미가 정해져 있는 c언어의 문법을 구성하는 단어들을 가리켜서 키워드(keyword)라고 해요. 이는 프로그래머가 다른 용도로 사용할 수 없도록 제한되어 있어요. 그래서 변수명으로는 사용 할 수 없답니다.


  3. 공백은 사용이 안된다.
  4. [     int a        b;    ] 이렇게는 사용이 안된다는 소리예요. 대신에 _(언더바)를 사용해서 공백을 표현하죠.
    [     int prime_number;     ]  이런 방식으로^^

  5. 첫 글자에 숫자는 사용해서는 안된다.
  6. [     int 3ab;     ] 이렇게도 사용해서는 안된다는거예요. 첫글자는 무조건 숫자가 아닌 다른 글자!

  7. 대소문자를 구별한다.
  8. [     int abc;     int ABC;    ] 두 개의 변수는 다른 변수예요!!!

  9. 특수문자 사용을 자제하는 것이 좋다.
  10. [     int a@b;   ] 등등. 컴파일러마다 오류가 되고 안되고.. 여튼 사용은 자제하는 것이 좋습니다!
추가적으로 변수명은 전체 코드에서 이 변수가 어떤걸 하는 변수인지 이해하기 쉽게끔 선언해주시는게 좋아요 ^^

자 이제 다음과 같은 코드를 확인해보죠.


#include <stdio.h>

int main() {
	char a;
	short b;
	int c;
	long d;
	float e;
	double f;

	printf("char => %d\n", sizeof(a));
	printf("short => %d\n", sizeof(b));
	printf("int => %d\n", sizeof(c));
	printf("long => %d\n", sizeof(d));
	printf("float => %d\n", sizeof(e));
	printf("double => %d\n", sizeof(f));

	return 0;
}


위와 같은 코드의 결과값은 아래와 '비슷하게' 나올거예요.

왜 '비슷하게' 냐고 했냐면.. 메모리에 얹어지는 사이즈는 시스템마다 다르기때문이예요.



위 코드를 통해 하나를 더 알아낸 키워드가 있어요. sizeof() 라는 것.

sizeof(데이터 타입)이 기본인데, 변수를 집어넣으면 그 변수가 차지하고 있는 바이트 수를 출력해줘요.

만약 형식지정자(데이터 타입이라고 많이 표현해요)를 집어넣게되면 그 데이터 타입의 바이트 수를 출력해줘요.

만약 sizeof(int)를 하면 4가 나와요. int는 4바이트(32비트)이거든요. 

이 부분은 현시점으로는 자세하게 다루지는 않을거예요. 만약 추후에 다루게 될 일이 있으면 문제로 다루게 될 것 같네요 :)



이번에 준비한 내용은 여기까지이고 위의 코드만 직접 타이핑해서 컴파일까지해보는게 이번 게시글의 문제네요ㅎㅎ 모두 고생하셨습니다. ^^7


------------------------------------------------------ 다음의 내용은 18.05.07에 추가된 내용 ------------------------------------------------------


변수의 초기화 라는 것이 있어요. 변수는 어떠한 값을 가지고 있어야 변수로서의 의미를 가질 수 있겠죠?


int a; 라고 하는 것은 우리가 정수형 변수 a를 선언한다. 라고 표현을 하고


int a = 10;  


int a;

a = 10;


위와 같은 것을 변수의 초기화. 라고 해요. 정수형 변수 a를 선언하고, 변수가 가지고 있는 값은 10으로 한다. 이런 뜻이겠죠?

변수는 초기화 값을 정해주지 않으면 이상한 값을 가지고 있어요. 흔히 '쓰레기값' 이라고 해요.

우리는 변수를 꼭 초기화를 해주고 사용을 해야 원하는 값을 얻을 수 있어요.


다음의 코드를 타이핑해서 컴파일을 해보세요. 차이점을 알게 됩니다!

#include <stdio.h>

int main() {
	int a;
	int b = 10;
	printf("a => %d\n", a);
	printf("b => %d\n", b);
	return 0;
}


------------------------------------------------------ 다음의 내용은 18.05.14에 추가된 내용 ------------------------------------------------------


제가 변수만 설명을 드렸고 해당 자료형들의 출력법을 안 알려드렸네요.. 죄송합니다 ( _ _ )


문자의 표현 방식은 다음과 같아요

#include <stdio.h>

int main() {
        char c;
        scanf("%c", &c);
        printf("입력받은 문자는 %c입니다. 아스키 코드로는 %d입니다.\n", c, c);
	return 0;
}

문자는 %c를 이용하고 %d로 출력을하면 아스키 코드 값이 나오네요. %d가 아닌 다른 것도 사용이 가능해요.


정수 표현 방법은 다음과 같아요.

#include <stdio.h>

int main() {
        int a, b, c;
        a = 10;
        b = 0x0A;
        c = 012;
        printf("a => %d", a);
        printf("b => %x or %d", b, b);
        printf("c => %o or %d", c, c);
	return 0;
}

변수의 초기화에서 0x 로 시작하면 16진수를, 0 으로 시작하면 8진수를 저장해요. 각각의 출력은 %x (%X)와 %o 입니다.


실수 표현 방법은 다음과 같아요

#include <stdio.h>

int main() {
        float a;
        double b;
        scanf("%f", &a);
        scanf("%lf", &b);
        printf("a => %f\n", a);
        printf("b => %lf\n", b);
        printf("a => %.2f\n", a);
        printf("b => %.2lf\n", b);
	return 0;
}

float형과 double형은 표현 범위의 차이가 있어요.(바이트 수가 다른 것부터 알 수가 있죠.)

float형은 %f로. double형은 %lf로 표현을 하네요. 각각의 출력과 소숫점을 절삭해버리는 부분까지 확인해보세요 ㅎ


다음은 서식문자(%?)에 대한 종류예요.


 서식문자

출력 대상(자료형) 

출력 형태 

%d 

char, short, int

부호 있는 10진 정수 

%ld 

long 

부호 있는 10진 정수 

%lld 

long long 

부호 있는 10진 정수 

%u 

unsigned int 

부호 없는 10진 정수 

%o 

unsigned int 

부호 없는 8진수 정수 

%x 

unsigned int 

부호 없는 16진 정수 

%f 

float, double 

10진수 방식의 부동소숫점 실수 

%lf 

float, double 

10진수 방식의 부동소숫점 실수 

%e, %E 

float, double 

e 또는 E 방식의 부동소숫점 실수 

 %g, %G

float, double 

값에 따라 %f와 %e 사이에서 선택 

%c 

char, short, int 

값에 대응하는 문자 

%s 

char * 

문자열 

%p 

void * 

포인터의 주소 값


상당히 많은데 이 중에서 짚고 넘어갈 것은 unsigned int 자료형이예요.

이는 음수를 제외한 0~int size*2 입니다. 즉, 4byte int형은 -2,147,483,648~+2,147,483,647 까지가 범위인데,

-2,147,483,648~-1 까지를 표시 안하고 양수로만 표현하겠다.. 즉, 0~(2,147,483,647 + 2,147,483,648) 까지 표시하겠다. 이런 얘기예요.

보편적인 크기일 뿐이예요. :)

원래는 signed int를 사용해도 되고 int를 사용해도 되요. 결국 의미는 같아요. 대부분은 signed를 생략하죠.


%s, %p는 추후에 다룰 내용이라 아~ 이런게 있구나 ^^ 라고만 알고계세요!! ㅎㅎ






게시글을 보시다가 궁금한 내용, 이게 맞나? 하는 내용, 이건 틀렸어!하는 내용들은 과감하게 댓글 달아주시면 감사하겠습니다.


이론적인 내용에 대한 궁금증은 검색을 통해 궁금증을 해결하는 것이 좋아요!!

실습적인 내용에 대한 궁금증은 최대한 생각을 해보고 검색을 하는 것이 좋아요!!

'Programming > C' 카테고리의 다른 글

[C] 함수  (0) 2018.05.15
[C] 반복문  (0) 2018.05.06
[C] 조건문  (0) 2018.05.04
[C] 기본 입/출력  (0) 2018.04.24
[C] 기본 구조  (0) 2018.04.19


html에 대한 게시글들은 최종적인 html 결과물을 보여드리고 어떻게 만들어가는지를 설명해드릴꺼예요.

눈으로 하는 코딩 말고!! 직접 타이핑하는 코딩을 하시면 실력향상에 무척이나 도움이 된답니다.^^7


기본 태그 소개


<ul>

(unordered lists) 번호가 없는 리스트

<ol>

(ordered lists) 번호가 있는 리스트

<li>

(list item) 리스트의 항목

<dl>

(definition lists) 정의 리스트 - 항목들과 함께 항목의 정의(설명)가 표시됨.

<dt>

<dl>태그에서 항목을 나타냄

<dd>

<dl>태그에서 항목의 정의(설명)를 표시함

<a>

(anchor) 하이퍼 링크를 항해한다하여 붙여진 이름. <a>~</a> 부분은 하이퍼링크가 걸린다.

<img>

(image) 이미지(jpg, png, gif, ...)를 불러올 때 사용.



안녕하세요. 정선생이예요! 오랜만에 html 게시글을 작성하게 됐네요. 앞으로는 자주 업로드하겠습니다!!! :(


이번 게시글은 기본적으로 사용하는 리스트와 링크, 이미지를 불러오는 태그에 대해 알려드릴거예요.


이미지는 저작권과 관련된 내용이 있을수도 있기에 태그만 알려드릴게요. 직접 코딩해보세요!! :)


자 그러면 결과물을 먼저 볼게요!

두 장을 가져온 이유는 <a> 태그의 활용법을 알려드리려고 만들었는데요. <a>태그와 <img> 태그만 좀 설명 드리면 이번 게시글은 마무리 될 것 같아요!


다음은 코드를 볼게요.



8번줄부터 20번줄까지는 ul과 ol을 비교해드리는 코드를 작성했어요. 어떤 방식으로 출력되는지 아시겠나요? :)


그리고 21번줄부터 27번줄까지는 (저는) 아직까지 사용해본 적 없는, 그렇지만 리스트 종류로는 있는 <dl> 태그의 예시입니다.


<dl> 이라는 큰 틀에 정의를 내리고자하는 단어(그 외도 가능)는 <dt>, 그에 해당하는 내용은 <dd>. 이해 되셨나요? :0


<img> 태그에서 src, alt, width, height가 대표적으로 쓰이는 속성이예요.

src경로나 url을 지정해주면되요. (경로에 대해서는 절대 경로와 상대 경로가 있어요.)

alt는 코드에 써드린 것처럼 엑스박스가 나오게 될 때 속성에 있는 값이 출력이되요. 

정확하게 말씀드리면 브라우저가 어떠한 이유로 이미지를 불러올 수 없을 경우에 출력해줄 텍스트. 입니다.

width height 는 다른 태그의 속성으로도 많이 사용하니 꼭 기억해두세요! 가로세로!


<a>태그는 마지막으로 설명해드릴게요. 설명드릴게 생각보다 많네요.

대표적으로 쓰이는 속성은 href, target인데요. 

href는 img에서의 src와 비슷하게 쓰여요. 하이퍼링크의 경로(절대 경로, 상대 경로, 내부 파일)를 넣어줍니다. 

웹 페이지에서의 경로와 일반적으로 쓰이는 경로에 대한 정의가 좀 다른 것 같아요. 여기서는 웹 페이지에 대한 정의를 내려드릴게요. 웹 수업이니까요:0

웹 페이지에서의 절대 경로란, "http://www.google.com" 처럼 다른 웹 사이트의 페이지로 연결되는 것을 말해요.( 보통의 홈페이지 사이트들 )

"http://return-zero.tistory.com"도 절대 경로가 되겠죠?! ^^

상대 경로란, "../doc/info.html"과 같이 현 웹 사이트 안에서의 다른 페이지를 표시하는 것을 말해요. 

내부 파일이란, 현재 페이지 안의 다른 위치를 얘기해요. 예제의 31번줄 코드를 보시면 됩니다.


target_blank와 _self를 가장 대표적으로 사용합니다. target 속성을 따로 작성해주지 않으면 자동으로 _self로 인식합니다.

이 말은 default(기본값)가 _self 라는 뜻입니다. :)

_blank와 _self의 차이는 직접 입력해서 눌러보시면 아시겠지만 _blank는 새창을 띄웁니다. 그리고 _self는 현재 창을 바꿔버리는거죠.


오늘은 링크에서 중요한 얘기가 많이 나왔지만 리스트도 빼먹으면 안됩니다.!! 

많이 쓰이는 부분들이예요. 기억해두시면 나중에 사용하시기 편합니다! :0




오늘 준비한 내용은 여기까지예요. 읽어주시느라 고생하셨습니다. 그럼 이만 ^^7





게시글을 보시다가 궁금한 내용, 이게 맞나? 하는 내용, 이건 틀렸어!하는 내용들은 과감하게 댓글 달아주시면 감사하겠습니다.


이론적인 내용에 대한 궁금증은 검색을 통해 궁금증을 해결하는 것이 좋아요!!

실습적인 내용에 대한 궁금증은 최대한 생각을 해보고 검색을 하는 것이 좋아요!!

'WEB > HTML' 카테고리의 다른 글

[HTML] 테이블  (0) 2018.05.07
[HTML] 텍스트 관련 태그  (0) 2018.04.08
[HTML] 문서편집기  (0) 2018.04.06
[HTML] 기본 구조  (0) 2018.04.06



눈으로 하는 코딩이 아닌! 직접 타이핑하는 코딩은 실력 향상에 엄청난 도움이 됩니다.




안녕하세요! 정선생이예요. 오늘은 기본 입/출력에 대해서 알아볼건데요.

기본 출력 함수는 printf()를 사용한다고 이전 게시글(이동)에서 배웠어요. 기억 나시나요?^^

기본 입/출력에 대한 소개를 시작할게요.


C에서 기본적인 입/출력을 하려면 파일 상단에 하나를 꼭 적어줘야해요.

저번 [기본 구조]에서도 말씀드렸듯이 #include <stdio.h> 를 꼭!!!!!! 적어줘야합니다

이 헤더 파일에 대해서는 자세히 설명을 안드렸는데요. 추후 함수를 사용하게 될 때 알려드릴게요. 궁금하신 분은 미리 구글링!!!


기본 출력 함수로는 printf() 함수가 있어요.

예시로 보여드리면 다음과 같아요


printf("Hello World!\n");
printf("1+2 = %d", 1+2);

첫 번째 줄은 저번 게시글에서 보여드렸어요! 기억해내셔야합니다!!!!!! ㅎㅎ

\n "이스케이프 시퀀스" 라고 해요.

두 번째 방법은 %? 를 사용하는 "형식 지정자" 라고 해요.

%d10진수 정수를 표현해준다. 라고만 기억하고계세요. 추후 게시글에서 지정자만 따로 골라내서 설명해드릴거예요! :0

두 번째 줄을 이어서 보면 printf("~~~~", 1+2); 이런 방식으로 되어있네요. 

%d 에다가 1+2를 넣어라(대입해라) 라는 소리예요. 잘 모르겠죠? 다음 사진을 한 번 봐볼게요.


1+2는 첫 번째 %d에, 4+5는 두 번째 %d에 대입이 되는 것을 이해하시기만 하면됩니다. 순서대로 형식 지정자에 대입된다. 라고 이해하고 계시면 되요.

그리고 파란색 표시가 된 , 부분도 주의깊게 봐주시구요.


다음으로는 입력 함수인데요.

기본 입력 함수로는 scanf() 함수가 있어요.

scanf()함수는 > 변수 <라고 하는 것이 필요해요. 입력을 받은 것을 저장해줘야하니까요.

예시는 다음과 같아요.


int a;
scanf("%d", &a);

int a;

integer(정수)형 값을 저장하는 'a'라는 이름을 가진 변수를 생성한다. 라는 뜻이예요. 

정수 값을 저장하는 변수인데, 이름이 a다. 보통은 읽히는대로 인트 a 라고 불러요. 

정수말고 다른 것들도 있어요. 이건 다음 형식 지정자를 설명해드릴 때 같이 설명드릴거예요.

scanf("%d', &a);

printf() 함수를 이해하셨다면 어느정도 이해가 되실겁니다. scanf() 함수는 입력을 받는 함수, %d는 정수형 타입의 형식 지정자.

정수를 입력받는구나. 라고 어느정도 감이 오시면되요. 그런데 그 입력 받는걸 어디다 넣느냐? a에다가 넣는다.. 이런 뜻이죠

정리 => 정수 1개를(%d가 한 개니까요) 입력 받은 것을 a에다가 저장해라.


"쌤!! &a는 뭐예요? "

=> 이건 좀 깊은 내용이예요. 추~~~~~후에 알려드릴 포인터 부분에서 자세하게 설명을 해드릴꺼예요. 일단은 무조건적으로 & 를 붙인다고 생각하세요!!


기본적인 입출력 함수의 예를 알려드렸어요


그렇다면 아래와 같은 프로그램을 만들어볼까요?







이번 게시글에서 준비한 내용은 여기까지예요. 고생하셨구요. 그럼 이만! ^^7





게시글을 보시다가 궁금한 내용, 이게 맞나? 하는 내용, 이건 틀렸어!하는 내용들은 과감하게 댓글 달아주시면 감사하겠습니다.


이론적인 내용에 대한 궁금증은 검색을 통해 궁금증을 해결하는 것이 좋아요!!

실습적인 내용에 대한 궁금증은 최대한 생각을 해보고 검색을 하는 것이 좋아요!!

'Programming > C' 카테고리의 다른 글

[C] 함수  (0) 2018.05.15
[C] 반복문  (0) 2018.05.06
[C] 조건문  (0) 2018.05.04
[C] 변수와 형식지정자  (0) 2018.04.30
[C] 기본 구조  (0) 2018.04.19

+ Recent posts