문자열
= ☜ 왼쪽에 있는 것은 대부분 메모리주소에 할당
↑↑ 문자 배열이라 함.
char ctext1 = 'A';
char ctext2 = 'B';
char ctext[10]; ☜ []안의 숫자는 메모리를 숫자*바이트 만큼 할당하게 한다. (char x 10 = 10바이트)
형(Type) | 이름(Name) or Simbol | 주소(Address) |
char | ctext1 | 1000 |
char | ctext2 | 999 |
char[] ☜ 배열선언 | ctext | 989(~998 ) |
= ☜ 왼쪽에 있는 것은 대부분 메모리주소에 할당
char ctext[10]; ☜ ctext ='A'로 넣을수 없다. ctext[0]='A'; 이런식으로 주소를 지정해 주어야한다.(주소 989지정)
ctext[0]='A';
ctext[8]='Z';
0 ~ 8 9
A | B | C | D | E | F | G | H | Z | \0 |
ctext[9]=0; ☜ Null 선언, 문자열 (ctext[9]='\0'; 같은 뜻) " " 쓸경우 컴파일러에 의해 자동적으로 Null 선언
색인(Index) ☜ 같은 자료를 모아 놓은 것.
float A;
A=3/2; ☜ 이렇게하면 1.0으로 잘못 나온다. 이유는 3/2를 정수로 입력되기때문이다. A=3/2f; 혹은 A=3/2.0; 입력
( ) ☜ 최상우 연산자 우선순위
#include <stdio.h>
int A;
A = 1<2; // 1은 2보다 작다 (참)
printf("%d\n", A);
A = 1>2; // 1은 2보다 크다 (거짓)
printf("%d\n", A);
return 0;
}
참이면 1이 출력 거짓이면 0이 출력 (논리값)
main()
{int A;
A = 1<2; // 1은 2보다 작다 (참)
printf("%d\n", A);
A = 1>2; // 1은 2보다 크다 (거짓)
printf("%d\n", A);
return 0;
}
참이면 1이 출력 거짓이면 0이 출력 (논리값)
int+float 연산은 float+float로 변환되어 연산된다.(casting)
#include <stdio.h>
main()
{
int A=3; //정수형 3입력 (4byte)
char B=7; //문자/정수형 7입력 (1byte)
B=B+A; //B의 char문에 int형 3을 입력할수없으므로 A의 int문을 char로 변환한다.(형축소)
printf("%d\n", B);
return 0;
}
A의 int형이 B의 char형보다 더큰 자료형이여서 4byte 3을 1byte형 B에 넣을수 없으므로 A의 int형을
char형으로 줄여서 결과적으로 char+char가 된다.(형의 축소)
'C언어 > 강의' 카테고리의 다른 글
2010년 10월 07일 목요일 ( if() else명령문 (0) | 2010.10.07 |
---|---|
2010년 10월 06일 수요일 ( 논리연산자 & scanf() 함수 & if() 명령문 ) (0) | 2010.10.06 |
2010년 10월 04일 월요일 (이스케이프 시퀀스 코드, 확장열) (0) | 2010.10.04 |
2010년 10월 01일 금요일 (아스키코드) (0) | 2010.10.01 |
2010년 09월 30일 목요일 (unsigned 양수 선언) (0) | 2010.09.30 |