비트연산자
& and (둘 다 1->1)
| or (둘 중 하나 1->1)
^ xor (두 비트 같으면 0, 다르면 1 반환)
~ not (반전)
비트연산 & 할당연산
unsigned int num1 = 4;
num1 &= 1;
num1 |= 2; (연산 후 num1에 할당)
이름없음2022/08/10 11:05:18ID : y45e3XvxCrw
unit 26~29
반복문 (for, while)
분기문 (switch)
for문
for (초기값; 조건문; 변화값)
int i=0; i<=5; i++
무한루프 -> for(;;)
값을 받아서 그 값만큼 반복
int count;
scanf("%d",&count);
for (int i=0; i<=count; i++)
or
for (; count>0; count--)
이름없음2022/08/10 11:23:40ID : y45e3XvxCrw
while문 (조건 맞을시 반복)
초기값;
while (조건문)
{ 실행문; 변화식; }
int i=0;
while (if i==0)
{ printf ("0"); i++; }
while 무한루프
while (1) {}
반복횟수 정해지지 않은 경우
#include <stdlib.h> //strand, rand 함수
#include <time.h> //time 함수
strand-초기값 설정
rand-난수 발생
time-현재 시간값 정수로 받기
strand (time(NULL));
int i=0;
while (i !=3)
{ i= rand()%10;
printf ( "%d", i ); }
이름없음2022/08/10 11:26:23ID : y45e3XvxCrw
do while - 일단 한 번은 실행하고 조건에 맞을시 반복
초기값;
do
{ 실행문; 변화식; } while(조건문);
이름없음2022/08/10 11:32:13ID : y45e3XvxCrw
switch 분기문
switch (변수)
case 1:
{실행문; break;}
case 2:
{실행문;}
case 3:
{실행문; break; } //case 2or3 일 때 실행
default :
{실행문; break;}
switch 변수 -> 정수만 취급
이름없음2022/08/11 15:15:36ID : y45e3XvxCrw
unit30~32
break, continue, 중첩루프, goto
break- 반복문에서 반복중지하고 루프빠져나옴
continue- 반복문에서 루프 안에서 해당코드 건너뜀
(for while switch)
이름없음2022/08/11 15:20:24ID : y45e3XvxCrw
goto 레이블 - 중복코드 많을시 줄이기 용이
if (i==0)
goto ONE;
ONE:
{;}
이름없음2022/08/12 15:11:42ID : y45e3XvxCrw
unit34 포인터
포인터란? 변수의 메모리 주소가 저장되는 곳
변수 - 메모리에 저장됨
포인터선언
int *ptr;
int num1=4;
ptr= &num1; // 포인터에 변수의 메모리주소 저장
printf( "%d", *ptr ); // 포인터 역참조해서 변수에 저장된값 출력
이름없음2022/08/12 15:19:52ID : y45e3XvxCrw
역참조 - 메모리주소에 접근
*ptr=20; // 메모리주소에 접근해서 변수 갑 변경
포인터 - 같은 자료형끼리만 사용
void 포인터 - 역참조불가, 변수저장불가, 다양한 자료형 받아들일때 사용
void *ptr;
int num1=4;
ptr=&num1;
상수형 포인터
const int *ptr;
int num1=4;
ptr= &num1; / 메모리주소 변경불가능
consr int *const ptr; / 상수포인터
이름없음2022/08/12 15:44:03ID : y45e3XvxCrw
이중포인터
int num1=1;
int *ptr;
int **ptrnum;
ptr=&num1;
ptrnum= &ptr;
이름없음2022/08/20 15:16:18ID : TRBfhwNy1zX
unit35 메모리
포인터에 메모리 할당하기
#include <std.lib>
int *ptr = malloc (sizeof (4)) ;
free (ptr) ; //동적메모리 해제
널포인터 (값x)
int *ptr= NULL;
특정 크기만큼 값 바꾸기
memset (포인터이름, 크기, 값) ;