티스토리 뷰
반복문 구성 방법
for 문을 이용해, 구구단 2단 출력 프로그램 만들기
1 단계 변수가 몇 개나 필요한지 파악하기
2 단계 중복된 변수 제거하기
3 단계 반복문 구성하기
시작 조건 : COUNT = 1;
종결 조건 : COUNT <= 9;
조건 변화 수식 : COUNT++
1 ~ 9 까지 총 9회 반복
#include <stdio.h>
int main (void){
int i;
for(i = 1; i <=9; i++){
printf("2 X %d = %d \n",i, 2*i);
}
return 0;
}
continue 제어문
루프의 나머지 부분을 무시하고 조건 점검부로 점프하여 루프의 다음 값을 실행하도록하는 명령이다.
#include <stdio.h>
int main (void){
int i;
for(i = 0; i<=50; i++){
if(i % 5 == 0)
continue;
if(i % 2 == 0)
printf("%d \n" , i);
}
}
시프트 연산자
왼쪽으로 이동시 오른쪽에 채워져야 할 것이 있으면 0으로 채워진다.
시프트 연산자는 비트를 이동시키는 것이다. 곱셈과 나눗셈의 대용으로 사용할 수 있다.
#include <stdio.h>
int main (void){
int i;
printf("정수를 입력하세요 : ");
scanf("%d",&i );
printf("결과 = %d \n", i << 1);
}
정수 i 를 입력 받은 후 왼쪽으로 한 칸 시프트한 값을 출력했다. 결과를 보면 입력한 값에 2배되는 값이 출력된다.
X * 2 = X << 1
X * 8 = X << 3
x * 100 도 시프트 연산자로 표현이 가능하다.
x * 100 = x * 64 + x * 32 + x * 4
= (x << 6) + (x << 5 ) + (x << 2)
그런데 여기서, 시프트 연산자는 덧셈 연산자보다 우선순위가 낮기 때문에 꼭 괄호를 사용해야 한다.
부호가 있는 변수일 경우에 시프트 연산을 사용하면 연산 특성이 달라져서 주의해야 한다.
즉 음수(부호 비트가 1)인 수가 오른쪽으로 이동할때에 앞 부분은 1로 채워진다.
비트 연산자
비트 연산자는 주로 하드웨어 관련 프로그래밍에 활용되지만, 그 이외의 영역에서도 사용되어 메모리 공간의 효율성을 높이고, 연산의 수를 줄이는 요인이 되기도 한다.
비트 단위로 AND, OR, NOT, XOR 연산을 의미한다.
시프트 연산자가 가장 빠르고 그 다음 비트 연산자 순으로 빠르다.
지정 비트를 0으로 설정하려면 AND 연산자를 사용하면 된다.
지정 비트를 1으로 설정하려면 OR 연산자를 사용하면 된다.
데이터 암호화 하기
보수를 이용해 덧셈으로 뺄셈 구현하기 : 비트 연산자에는 XOR(^) 연산자가 있다. 이 연산자는
연산되어지는 비트 값이 같으면 0 다르면 1을 가지는 특성이 있다. 특정한 비트 패턴에 XOR을 두번 사용하게
되면 다시 특정 비트 패턴으로 돌아오게된다.
특정한 비트 패턴에 XOR 을 두번하게 되면 다시특정 비트 패턴으로 돌아온다.
지역 변수
지역변수란 함수 안에 선언한 변수나 매개 변수를 의미한다.
자신을 선언한 하수가 호출될 때 만들어 졌다가 함수 호출이 끝나면 사라진다. 함수와 같은 수명을 가진다고 생각하면된다.
자신을 선언한 함수 내에서만 사용가능하다.
지역 변수 이름은 중복해서 사용할 수 있다.
같은 함수 안에 선언된 변수의 이름이 같으면 오류가 발생한다.
서로 다른 함수에 선언된 지역 변수의 이름은 같아도 오류 발생하지 않는다.
스스로 초기화하지 않는다. 프로그래머가 직접 초기화 해야한다.
전역 변수
전역 변수란 함수 밖에 선언한 변수이다.
프로그램 시작할 때 만들어 졌다가 종료될 때 함께 사라진다.
프로그램 전체 영역에서 사용 가능하다.
똑같은 이름의 전역 변수가 프로그램 내에 또 있으면 오류가 발생한다.
특별한 초기화 값이 없으면 0으로 자동 초기화 된다.
키워드
1. extern 키워드
같은 프로젝트 안에 존재
다른 프로젝트에 있는 전역 변수를 참조한다.
extern 키워드를 사용할 때 주의할 점!!
(1) A.c 파일에 같은 이름의 g_data1 전역 변수가 있기 때문에 링크 오류 발생
(2) A.c 파일에 선언된 g_data2 전역 변수를 정상적으로 extern 참조
(3) A.c 파일에 선언되지 않은 전역 변수를 extern 참조하였기 때문에 오류 처리
(4) extern 참조에서 초기화를 사용했기 때문에 일반 전역 변수로 처리됨. 오류X
(5) extern 참조에서 초기화를 사용했기 때문에 일반 전역변수로 처리됨.
A.c 파일에도 g_data5 전역 변수가 선언되었기 때문에 중복 되었다고 오류처리
2) static 키워드 : 전역변수의 사용 범위를 제한할 수 있는 키워드 즉 해당소스로 사용범위를 제한한다.
ㅡ 전역변수앞에 static을 선언 해버리면 다른 소스에서 extern으로 참조할 수 없고, 이름이 같은 변수가있어도 오류가 나지 않는다.
- 선언한 전역 변수의 사용범위를 선언한 소스파일로 제한하고 싶은 경우
- 다른 소스파일에서 해당 전역 변수에 extern 키워드 사용불가
- 같은 이름의 전역번수 사용가능
ㅡ 함수 내에서 static 키워드를 사용한 지역 변수는 해당 함수내에서 전역변수처럼 쓰인다
ㅡ 함수 안의 static 키워드는 0으로 초기화 되지 않으므로 초기화 시켜줘야한다
3) Const 키워드 : 변경하지 말아야 할 변수를 변경하는 경우에 문법적인 오류가 발생하도록 사용하는 키워드 // 주석보다 강력하게 의지표명 가능
배열
배열선언
- 배열은 자료형이 같은 변수들을 그룹으로 묶어서 관리할 때 사용
- [ ] (대괄호) 를 사용하여 저장 공간을 몇 개 만들 것인지 명시
- short student [20];
배역의 요소에 접근하기
- 변수의 개별 요소에 접근하기 위해서는 변수 이름 뒤에 [] 를 적고 자신이 사용하고 싶은 요소의 색인(index)을 명시
- 배열 색인은 0부터 시작하여 1씩 증가
- 20개를 선언했으면 0 ~ 19 를 써야하는데, 만약 -1이나,20을 넣으면 오류가 생기지 않고 버그가 생긴다.
배열 요소에 for문으로 값 대입하기
- 배열의 특정 요소에 값을 대입할 때에는 [ ] 안에 변수 사용 가능
배열 초기화하기
- 배열 문법으로 선언한 변수는 지역 변수처럼 자동 초기화 되지 않는다.
- 배열의 각 요소에 일정한 값을 대입하여 초기화하여 사용한다
- 일반적으로 프로그래머들은 초기값으로 0을 사용한다
쉼표를 사용한 배열 초기화 문법
- 배열로 선언한 변수를 { } 중괄호를 사용하여 일반 변수처럼 초기화 하는 방법
- 배열의 요소가 많은 경우 0 아닌 다른 값으로 초기화하고 싶다면 반복문을 사용하는 것이 효과적이다.
배열 크기 생략하기
- 배열을 선언할 떄 [ ] 안의 요소 개수를 생략하고 선언 가능
- 배열의 특정 요소에 값을 지정할 때에는 { } 를 사용할 수 없다.
배열의 요소 값 사용하기
8) 배열은 사용자 정의 자료형이다
- 배열은 같은 크기의 메모리를 그룹으로 묶어 새로운 크기의 변수를 만들기 때문에 '사용자 정의 자료형'(User-defined Data Type) 이다
문자열
문자열의 길이 정보 표시하기
C언어에서 문자를 저장하는 데 가장 적합한 자료형은 char형 이다
문자열을 저장하려면 char 형 변수를 그룹으로 묶어서 관리하는 cha 배열을 사용해야 한다.
문자의 끝에 NULL(널) 문자 0 을 추가로 입력해서 ' 이 배열에 저장된 정보는 문자열이다' 라고 컴파일러에게 알려준다
배열의 문자열을 저장하고 출력하기
지정된 문자열의 길이 구하기
해당 문자열의 길이를 알기 위해서는 문자열의 끝을 찾는 코드가 필요하다
문자열을 다루는 C 내장 함수
- strlen = string + length // 문자열의 길이를 구하는 문자열 표준 함수
- strcpy = string + copy // 문자열을 복사하는 문자열 표준 함수
- strcat = string + concatenation // 문자열 뒤에 다른 문자열을 덧붙이는 문자열 표준 함수
'TIPS' 카테고리의 다른 글
[TIPS 프로그래밍 강좌] 6차시 정리 (0) | 2017.01.18 |
---|---|
[TIPS 프로그래밍 강좌] 5차시 정리 (0) | 2017.01.15 |
[TIPS 프로그래밍 강좌] 3차시 정리 (0) | 2017.01.08 |
[TIPS 프로그래밍 강좌] 2차시 정리 (1) | 2017.01.03 |
[TIPS 프로그래밍 강좌]1차시 정리 (0) | 2016.12.30 |
- Total
- Today
- Yesterday
- 와이어샤크
- 오일러 프로젝트 14번
- Tips
- 화투이미지맞추기
- 서버
- 오일러 프로젝트 10본
- TIPS강좌
- 오일러 프로젝트 11번
- Omok
- MFC
- 비손실 압축
- 오일러
- 패킷
- 오일러 프로젝트 16번
- 약수 500개
- 오일러 프로젝트 8번
- 실행 압축
- CBrush
- arp
- 오일러 프로젝트 12번
- tipsoft
- 팁스강좌
- 헤더
- 허프만 알고리즘
- 이미지게임
- 2의 1000승
- tipsr강좌
- 오일러 프로젝트 13
- 키보드 메시지 이벤트
- tipssoft
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |