Visual C++6.0으로 배우는 C언어 제1부-변수와 연산자(1/7)
본 자료는 9페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
해당 자료는 9페이지 까지만 미리보기를 제공합니다.
9페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

Visual C++6.0으로 배우는 C언어 제1부-변수와 연산자(1/7)에 대한 보고서 자료입니다.

목차

【 1】Visual C++6.0에서 실시하는 법
【 2】프로그램의 구조
[ 3] 변수
[ 4] 글로벌변수
[ 5] 기억장소의 종류
[ 6] 자동변수
[ 7] 정적변수
[ 8] 자동변수와 정적변수의 차이
[ 9] 정적외부변수와 자동국소변수의 유효범위
[10] 외부정적으로 선언된 문자배열
[11] 레지스터변수
[12] 외부변수
[13] 상수
[14] 자료형
[15] 확장문자
[16] 변환문자
[17] 계산식
[18] 산술연산자
[19] 대입연산자
[20] 형변환규칙과 캐스터 연산자
[21] 조건연산자
[22] 비트연산자
[23] 쉼표연산자
[24] 연산자 우선순위와 결합순서
[25] 1차연산자 - 단항연산자, 간접연산자(*), 번지연산자(&), 1의보수연산자, 논리연산자, cast 연산자, sizeof, 증감연산자
926] 2항연산자 - shift 연산자, 관계,상등연산자, 논리연산자.

본문내용

는 후위형만 써야한다. 왜냐하면 while문을 전위문으로 하면 10미만인 9번만 수행되어 답이 45가 되어 1~9까지의 합이 나타난다.
(3) 이항 연산자
① shift 연산자 (<<, >>)
- 정수 변수의 값을 좌측이나 우측으로 한 비트 단위로 밀어 내기 기능을 사용하며, <<(좌측 쉬프트),
>>(우측 쉬프트)가 사용된다.
- 새로 입력되는 자리에는 0이 들어온다.
<예>
#include
main(){
int left, right, x=12;
left=x<<3;
right=left>>2;
printf("left=%d %d %d \n", left, x, x*8);
printf("right=%d %d %d \n", right, left, left/4);
getch();
}
<결과> left=96 12 96
right=24 96 24 //시스템마다 다른 값이 나온다.
<풀이> x의 값 12를 왼쪽으로 3bit 이동한 left의 값과 오른쪽으로 2bit이동한 right의 값을 출력한다.( n bit 이동은 2^n 만큼 곱하거나 나눈 것을 의미한다.
② 관계,상등 연산자 (< ,>,<=,>=,==,!=)
참이면 1 거짓이면 0을 갖는다.
컴파일러는 a [연산자] b 를 a - b [연산자] 0 으로 해석한다.
오른쪽에서 왼쪽으로 연산한다.
ex) 3 < j < 5 ⇔ (3 < j) < 5
x < x + y 와 0 < y는 때에 따라 같지 않다.
x가 비교적 큰수이고 y는 상대적으로 작은 수일때 그러하다.
그 이유는 컴파일러는 무한한 정확도를 가지지 못하기 때문이다
(예1)
#include
main(){
int a, b;
a=4; b=5;
if(a+b !=5)
printf("Doesn't add up to five."),
getch();
}
<결과>Doesn't add up to five.
☞ 변수의 합이 어떤 값과 같지 않을 때 참으로 되어 실행된다.
(예2)
#include
main(){
int a=15, b=5,c=0;
if(a>=b) c=a-b;
else if(a<=b) c=a+b;
printf("c=%d\n",c);
getch();
}
<결과> c=10
☞ a의 값이 b보다 크면 a-b를 넣고, 그렇지 않으면 a+b의 값을 넣는다.
③ bitwise-and(&), bitwise-exclusiveor(^)
TOP
(예1)
#include
main(){
int x=0x0345, y=0x0f0f, z1,z2,z3;
z1=x&y; z2=x|y; z3=x^y;
printf("z1=%x z2=%x z3=%x\n",z1,z2,z3);
getch();
}
<결과> z1=305 z2=f4f z3=c4a
A
B
&
|
^
z1=x&y
x 0000001101000101
y 0000111100001111
z1 0000001100000101
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
※ & : 0을 거짓으로 보고 1은 참으로 보았을 때 두수를 비교해서 둘 다 참일 때만 참
| : 0을 거짓으로 보고 1은 참으로 보았을 때 두수를 비교해서 둘 중 하나만 참이면 참
^ : 0을 거짓으로 보고 1은 참으로 보았을 때 두수를 비교해서 둘이 같으면 거짓, 다르면 참
④ 논리 연산자 (||,&&,!)
TOP
!(논리 부정)는 수식이 0 값을 가질 때 1이 되고,0이 아닌 값을 가질때 0이 된다.
!!5는 5가 아니라 !(!5) == !(0) == 1이 된다.
char c = 'A'; 일 때 !c는 A의 아스키 코드값 65의 !65 == 0이 된다.
&&(논리곱:and)가 ||(논리합:or)보다 우선 순위가 높고
좌측에서 우측으로 결합한다.
expr1 && expr2일때 expr1이 0값을 가지면 expr2를 처리하지 않고 0값을 가지며
expr1 || expr2일때 expr1이 1을 가지면 expr2를 처리하지 않는다.
이것을 short circuit라 한다.
(예1)
#include
main() {
int a=0, b=0,c;
c=a &&b++;
printf("c=%d b=%d\n",c,b);
c=a||b++;
printf("c=%d b=%d\n",c,b);
getch();
}
<결과> c=0 b=0
c=0 b=1
(1) &&(and : 논리곱) .....둘다 참일 때 참이 된다.
(2) || (or : 논리합).......둘 중 하나가 참이면 참이 된다.
(3) ! (not : 부정) ..........서로 반대
(예2)
#include
main(){
int a=1,b=0,c,d; /*a에는 모든 정수에 대해 결과는 같다.*/
c=!a ; d=!b; /*a를 1로 하면 !a=0, b를 0으로 하면 !b=1*/
printf(" !%d=%d\n !%d=%d\n", a,c,b,d);
getch();
}
<결과> !1=0
!0=1
(예3)
#include
main(){
int i;
i=!0; /*!0은 0(거짓)의 부정값이므로 1이 된다*/
printf("i 는 ① %d\n",i);
if(!1)
i=6; /*if(!1)에서 현재의 변수값은 1이므로 0(거짓)이 되어 수행하지 않는다*/
printf("i 는 ② %d\n",i);
if(!(i==6)) /*i=1이므로 즉 i가 6이 아니므로 if(!(i==6)을 수행한다*/
printf("i 는 ③ %d\n",i);
getch();
}
<결과> i 는 ① 1
i 는 ② 1
i 는 ③ 1
(예4)
#include
main(){
int i;
i=!0; /*!0은 0(거짓)의 부정값이므로 1이 된다*/
printf("i 는 ① %d\n",i);
if(!0)
i=6; /*if(!0)에서 현재의 변수값은 1이므로 참이 되어 수행한다*/
printf("i 는 ② %d\n",i);
if(!(i==6)) /*i=6이므로 if(!(i==6)은 거짓이 되어 수행하지 않는다*/
printf("i 는 ③ %d\n",i);
getch();
}
<결과> i 는 ① 1
i 는 ② 6

키워드

C언어,   Visual C++,   c++,   터보 C,   unix,   컴퓨터 언어
  • 가격3,000
  • 페이지수28페이지
  • 등록일2004.05.16
  • 저작시기2004.05
  • 파일형식한글(hwp)
  • 자료번호#250774
본 자료는 최근 2주간 다운받은 회원이 없습니다.
다운로드 장바구니