배열이란?
같은 자료형의 변수를 연속적으로 묶어 놓은 저장공간
배열의 선언
int a [5];
※ a[6] 은 없기 때문에 오류가 난다.
이차원 배열
같은 자료형의 변수를 행과 열의 연속적인 공간으로 묶어 놓은 것
void main(){
char msg[50] = "Hello World! God Luck!";
int i = 2, number = 0;
while(msg[i] != '!'){ // !와 같은 값이 나올때까지 반복
if(msg[i] == e'a' || msg[i] == 'e' || msg[i] == 'i' || msg[i] == 'o' || msg[i] == 'u')
number++; // if문이 참일때 수행함
i++; // if문이 거짓일때 수행함
}
printf("%d", number);
return 0;
}
void main(){
int i;
char ch;
char str[7] = "nation";
for(i = 0; i < 4; i++){ // i < 4 가 참이면 아래 문장을 수행함
ch = str[5-i]; // i, ch 값을 확인한 후 str 배열에 들어있는 문자를 넣어줌
str[5-i]; = str[i];
str[i] = ch; // ch를 이용하여 str 배열 알파벳의 자리를 교체함
}
printf("%s\n", str);
return 0;
}
포인터란?
메모리의 위치를 표현한 기호
포인터 변수 선언
int *a; // 포인터 변수 a를 int로 선언함
*a = 10; // 포인터a의 값에 10을 대입
printf("%d", a); // a 값은 102가 출력됨
printf("%d", *a); // 포인터 a가 가리키는 값 10이 출력됨
변수의 주소 찾기
int b = 10; // b 에 10이 들어가 있음
int *a; // a는 포인터 변수임을 선언함
a = &b; // a는 b의 주소값을 가짐
printf("%d\n", *a); // a가 가리키고 있는 값이므로 10
printf("%d\n", b); // b의 값은 10
#include <stdio.h>
void main(){
int A = 10, B;
int *C = &B; // 포인터 C는 B의 주소값
B = A--; // B에 10을 대입한 후 -1을 해줌
B += 20; // B = 10 + 20
printf("%d", *C); // C의 값을 출력하므로 30
}
scanf
사용자의 키보드로 입력받을 때 사용하는 함수
scanf("%d", 변수의주소);
scanf 사용법
int a;
scanf("%d", &a); // a의 주소값에 입력받음
printf("%d", a);
// 아래의 scanf() 함수의 입력으로 90을 타이핑했다고 가정
int main(){
int i = 10;
int j = 20;
int *k = &i; // 포인터 k는 i의 주소값을 입력받음
scanf("%d", k); // 90을 입력받았으므로 k가 가리키는 값 i에 90이 입력됨
printf("%d, %d, %d\n", i, j, *k);
return 0;
}
'C' 카테고리의 다른 글
포인터 배열 (0) | 2023.04.04 |
---|---|
1차원, 2차원 배열과 포인터 (0) | 2023.04.03 |
for, 다중 for 문, continue, break (0) | 2023.03.14 |
반복문(while, do ~ while, for), if 문 (0) | 2023.03.14 |
삼항연산자(조건연산자), 제어문(if, switch), 반복문(for) (0) | 2023.03.13 |