일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 오라클
- 구글 reCaptcha
- Vim
- C언어 구조체
- gcc
- Spring email
- Google reCaptcha
- 포인터
- 날짜
- SQL
- C언어 배열
- 텍스트 파일 읽기
- C언어 변수
- C언어
- TCP/IP 소켓
- URL 다운로드
- Spring google
- jsp
- 역순
- Oracle
- C언어 파일입출력
- java
- placehoder
- C언어 함수
- 자바
- C언어 메모리
- GUI
- Naver SmartEditor
- C언어 매크로
- HTML5
- Today
- Total
목록포인터 (19)
easy software
안녕하세요. 이번 시간에는 포인터와 배열을 이용하여 사용자로부터 정수를 입력받고, 그 중에서 최댓값과 최솟값을 출력하는 예제를 해보려 합니다. 다만, 이번에는 더블(이중)포인터의 개념도 들어갑니다. 간단히 더블포인터란 무엇인지부터 살펴보도록 하죠. int a = 10; int *ptr = &a; 아주 간단한 포인터 연산입니다. ptr이라는 int형 포인터 변수에 num의 주소값을 줘서 가리키게 하는 연산이죠. ptr도 변수이기 때문에 주소가 있겠죠? ptr은 * 연산자가 한개있는 싱글 포인터 변수이기 때문에, 이 포인터를 가리키게 하려면 * 연산자가 두개있는 더블 포인터 변수를 선언해야 합니다. int **ptr2 = &ptr; 이렇게 하면 아래와 같은 그림처럼 ptr2가 ptr을 가리키고, ptr이 a..
이번 시간에는 Bubble Sort(버블정렬)을 해보도록 하겠습니다. 버블정렬을 혹시 모르시는 분이 계실 수 있으니, 간단하게 개념을 집고 넘어가겠습니다. 위의 사진을 예로들어서 설명하겠습니다. 정렬이란 단어를 모르는 분은 없을거라 믿습니다만, 혹시 모를수도 있으니 간단히 설명드리겠습니다. 값이 4 3 5 1 2 가 있습니다. 위의 값을 오름차순(ascending order)정렬한다면, 1 2 3 4 5 가 될 것이고 내림차순(descending order)정렬한다면, 5 4 3 2 1 이 될 것입니다. 버블정렬이란, 정렬되는 과정이 마치 거품이 일어나는 모습과 유사해서 붙어진 이름입니다. 위의 그림은, 버블정렬을 오름차순으로 하는 그림인데 step1에서 -2와 45를 비교합니다. 45가 더 크니, 각자..
이번에는 조금 난이도가 있다면 있는 문제일 수 있습니다. 사용자가 문자열을 입력하면, 회문이 맞는지 아닌지를 출력해주는 프로그램입니다. 회문이란? abba, noon, akka, eee, ere 등등 앞 뒤를 바꿔도 동일한 문자가 되는 것을 뜻합니다. 우선 회문을 검사하려면, 사용자가 입력한 문자열의 길이를 알아야합니다. 그리고 문자열의 길이/2를 하여 반복문에서 문자열의 앞과 뒤를 검사해서 같은지를 확인해야 합니다. 반복문을 모두 수행하지 않았어도, 중간에 같지 않은 문자가 발견된다면, 반복을 중단하고 회문이 아니라는 것을 출력해주면 됩니다. 아래 코드 보시죠. #include //문자열이 회문인지 아닌지를 알려주는 함수 void pal(char* ptr, int len){ int count = 0; ..
안녕하세요. 이번 시간에는 지금까지 학습했던 포인터와 배열을 이용하여 짝수와 홀수를 구분하여 출력해주는 예제를 해보도록 하겠습니다. 문제의 조건은 아래와 같습니다. 1. 길이가 10인 배열을 선언하고, main에서 정수를 입력받는다. 2. 배열에 값을 저장하고 홀수/짝수를 구분해주는 함수를 작성한다. 3. 함수에 배열을 인자로 전달하여 홀수와 짝수를 구분하여 출력한다. 문제의 조건은 상당히 간단합니다. 그리고 배열과 포인터의 개념이 같다는 정도만 잘 이해하고 있어도 무난하게 풀 수 있는 문제입니다. 코드는 아래를 보시죠. #include //배열을 인자로 받아 홀수를 출력해주는 프로그램 void oNum(int* ptr){ printf("홀수 출력: "); //홀수를 찾기 위해 반복문 수행 for (in..
예제를 하나 해보면서 포인터와 const의 또 한가지 특징을 말씀 드리겠습니다. #include void print(const int* ptr){ printf("%d \n", *ptr); int *p = ptr; *p = 20; } int main(void){ int a = 10; int *p = &a; print(p); return 0; } 위의 코드를 보면 문제점이 있어 보이나요? 아니면 없어 보이나요? 위의 코드에는 분명히 문제점이 있습니다. print함수 내의 int *p = ptr; 이라는 코드가 바로 문제의 코드입니다. 왜 이 코드가 문제코드인지 설명해 드리겠습니다. print함수는 인자를 ptr로 받고 있습니다. ptr은 상수인데 print내에서 선언한 p는 상수가 아닙니다. 그런데 p에 p..