본문 바로가기

C언어

(36)
[C언어 예습]DAY15_인터배열과 배열포인터, 지역변수, 전역변수, static변수 포인터 배열 : 포인터가 나열 되어 있는 것 2개 이상의 주소값을 저장할 수 있도록 함(목적) 값에 접근하기 위해서는 두번 참조해야 한다. #include #define SIZE 3 //void 함수를 선언해서 40, 50, 60으로 값 바꾸기 //배열 받아오기 void changeValue(int*); //void changeValue(int*[]); void main() { int num1 = 10, num2 = 20, num3 = 30; int* PArNum[3] = { &num1, &num2, &num3 }; for (int i = 0; i < SIZE; i++) { printf("%d ", **(PArNum+i)); } printf("\n"); changeValue(PArNum); //PArNu..
[C언어]DAY14_배열포인터 배열 포인터 //목표: 문자열(문자의 배열)을 위한 2차원 배열(문자열이 여러개) //2차원 배열을 가리키기 위한 배열 포인터 #include #define ROW 3 //ROW : 줄 #define COL 100 //COL : 칸 //void print_array_2d() int main() { int i = 0; int j = 0; //문자열 여러개로 2차원 배열을 초기화 char arr[ROW][COL] = { "Weclome", "to", "Neverland"}; //위의 2차원 배열은 아래와 같은 효과 char text[COL] = "Welcome"; char* p_arr = text; //문제없음 text의 원소가 char이므로 둘다 char타입이 맞음. char(* p_arr2)[COL] =..
[C언어]DAY13_문자열 응용, 다차원 배열 문자열 응용 //문제 //문자열을 선언하고 "Hello World"로 초기화한 뒤, //문자열에 있는 영문을 모두 소문자로 변환시키는 프로그램을 작성하세요. // "Hello World" => "hello world" //대문자와 소문자는 32차이가 난다. #include #define MAX 100 void lower(char* arr, int count){ int i =0; printf("%d\n", sizeof(arr)); for(i=0; i ='A' && arr[i]
[C언어 예습]DAY14_포인터(2) 정적 배열, 동적 배열, 이중 포인터 포인터(2) - 함수의 매개변수의 종류에 따라 호출패턴(방식)이 다르다. call by value int f(int x){ return 2*(*x)+1; } f(3); call by address void f(int* x){ *x = 2*(*x)+1; } int data = 3; int* PData = &data; f(PData); - 포인터의 사용이유 : 다른 지역에 있는 변수의 주소에 접근하여 값을 변경 혹은 수정할 수 있다. #include void f(int*); void main() { int num = 0; f(&num); printf("%d\n", num); } void f(int* data) { *data = 10; } //선택정렬 함수 만들기 #include void sort(int*, ..
[C언어 예습]DAY13_포인터(1) 포인터(1) : 가리키는 것, 주소를 가리키는 것. - 포인터 변수 - 포인터 상수 : 배열 변수(저장공간): 값 포인터(저장공간): 주소값 - &data / &(주소연산자)변수(저장공간) - int *PData / int(자료형)*(포인터연산자) - *PData / *(참조연산자) : 가서 읽어라. 100페이지 피세요~ : 포인터 100페이지 읽으세요~ : 참조 포인터의 크기는 컴파일러마다 다름. 32bit 에서는 자료형 상관없이 무조건 4byte. 64bit 에서는 자료형 상관없이 무조건 8byte. 선택정렬(오름차순) 9 1 8 5 6 1회전 1 9 8 5 6 2회전 1 5 6 8 9 3회전 1 5 6 8 9 4회전 1 5 6 8 9 #include void sort(int *arData, int ..
[C언어 예습]DAY12_함수의 응용(계산기) 함수의 응용 계산기 (함수 사용, 헤더파일 사용) 출력예) 계산기 10*4 40 string.h strcmp(): 문자열 비교 strcmp(값, 값) 두 값이 같으면 0 리턴 char oper[3] = {' ', }; if( !strcmp(oper, "+") ){ 같을 때 실행할 문장 } #include #include #include"calculator.h" void calc(int, char[3], int); void main() { int num1 = 0; int num2 = 0; char oper[3] = { ' ', }; printf("계산기\n"); scanf_s("%d%c%d", &num1, oper, sizeof(oper), &num2); //printf("%d%s%d\n", num1, o..
[C언어 예습]DAY11_함수의 선언과 사용 함수 function - 함수를 사용하는 이유: 반복되는 문장들을 쉽게 관리하기 위해서. 특정성을 주면 x, 재사용의 목적이 있기 때문에. f (x) = 2x+1 함수명 매개변수 리턴값 - 함수의 선언 리턴타입 함수명(자료형 매개변수, ...) { 실행할 문장; return 리턴값; } - 함수의 사용 함수명(값1, 값2, ...); * 함수 주의사항! 함수는 선언시 반드시 다른 함수 외부에서 선언해야 한다. 하지만 사용은 가능하다. - 함수 선언시 순서 * 틀을잡는다. * 1. 함수명을 선택한다.(동사, 리턴타입은 처음에 void로 준다.) 2. 매개변수를 선택한다. 3. 실행할 문장과 리턴값을 생각한다. #include //f(x)= 2*x+1 (단, x는 정수) int f(int); void mai..
[C언어]DAY12_문자열 문자열 (= 문자의 배열) - 문자배열의 특징 1. 문자의 끝을 알려준다. 문자열의 끝에 null(=0)을 저장해줘야 함. 2. char 형 사용. (1byte) : 문자(아스키코드)는 0 ~ 127까지이므로 1byte로 충분. - 문자열 선언 : char 배열명[배열크기] - 문자열의 끝 : null charater (0) - 배열의 크기 : 문자열의 길이 + 1 (null을 넣어야하기 때문에) #include #define MAX 100 int main(){ int i = 0; //문자열 초기화1 char str[MAX] = {72, 101, 108, 108, 111, 0}; //Hello의 ascii code char *p_str = str; //배열의 이름은 주소, 주소는 포인터에 담는다. //문..