본문 바로가기

프로그래밍/C언어14

8-1. c언어 포인터와 상수 포인터 int a=10; 컴파일러는 컴퓨터에게 메모리 0x123456(임의의 16진수) 위치에서부터 4바이트의 공간에 있는 데이터를 10으로 바꾸어라!고 명령한다. (2진수 ...00001010) 로 저장될 것이다. 포인터는 특정한 데이터를 보관하는 '변수'이다. 바로, 특정한 데이터가 저장된 (시작)주소값을 보관하는 변수이다. 변수를 정의할 때 int 나 char처럼 여러가지 '형'(자료형)이 있는 것 처럼 포인터도 '형'이 있다. 포인터 기본구조 포인터에 주소값이 저장되는 데이터의 형 * 포인터의 이름 int*p; 이렇게 정의 하면 포인터 p는 int형 데이터의 주소값을 저장하는 변수가 되는 것이다. 그러면 이 변수에 값을 어떻게 집어넣지? & 연산자를 사용하면 된다. (a&b는 두개의 피연산자가 필.. 2023. 1. 31.
7. c언어 배열 array, 상수 배열 메모리 상에 같은 타입의 변수를 연속적으로 여러개를 한꺼번에 정의할 수 있는 방법 특정한 형(Type)의 변수들의 집합. 기본구조 배열의형 배열의이름 [원소갯수]={}; int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; 위의 배열은 int형의 10개의 원소를 가지는 배열이다. 즉 10개의 정수형 변수들을 보관할 수 있게된다. #include int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; printf("Array 3번째 원소 : %d \n", arr[2]); return 0; } Array 3번째 원소 : 3 배열 안의 원소들을 먼저 정의하기. int arr[3] = {1,2,3); //가능 arr = {4,5,6}; // 불가능 .. 2023. 1. 31.
6. c언어 반복문 for, while for문 기본구조 for (/* 초기식 */; /* 조건식 */; /* 증감식 */) { // 명령1; // 명령2; // .... } for문은 {} 안에 작업을 조건식이 성립할 동안 반복해주는 것이고, 매 반복마다 증감식을 실행한다. 예를 들어 #include int main() { int i, sum = 0; for (i = 0; i < 20; ++i) { sum = sum + i; } printf("1부터 19까지의 합 : %d", sum); return 0; } sum=0 for i in range(20) : sum+=i print(sum) 내 생각에 아래와 같은 파이썬의 간결한문장이 for i in range(1,10) c언어에서는 다음과 같이 복잡해진다..는 것만 제외하면 비슷하다! for .. 2023. 1. 31.
5. c언어 if 문 if, if else, else if문 비교 파이썬 if x==7 : print("행운입니다!") c언어 if (x==7) { printf("행운입니다!"); } 파이썬과 거의 비슷하다. if문 if문 코드는 기본적으로 다음과 같다 if (조건) { 실행할 함수 } if문 예시 #include int main() { int i; printf("입력하고 싶은 숫자는 : "); scanf("%d", &i); if (i == 7) { printf("행운!"); } return 0; } if문의 조건을 만족하지 않으면 {} 안의 함수는 실행되지 않고 지나친다. return 0 만 실행된다. 참이면 1 거짓이면 0. 1이면 실행, 0이면 지나친다. 그렇다면 if문이 if(1)이면 무조건 실행한다는 뜻이다. if문을 이용하여 0으로 나누는 경우 .. 2023. 1. 21.
4. c언어 scanf 문자 입력 받기, 형변환 컴퓨터는 0과 1만 처리한다. 문자도 숫자로, 즉 0과 1로 처리한다. 그래서 단지 이것을 char, 즉 문자형으로 사용할 것이냐, int형, 즉 정수형으로 사용할 것이냐는, 포맷으로 달라진다. #include int main() { char a = 'a'; printf("a's value=%d, a's char=%c\n", a, a); return 0; } 결과는 다음과 같다 a's value=97, a's char=a %d는 a의 값을 십진수로 출력하라는 뜻이다. %c는 a의 값을 문자로 출력하라는 뜻이다. a는 문자인 'a'로 저장되었지만 포맷에 따라 정수형과 문자형으로 출력 되었다. ASCII 코드 : 문자와 숫자의 대응표. 1byte (8bit) 로 문자들을 표현했다. Unicode : 한 문자.. 2023. 1. 21.
3. c언어 연산자 증감, 복합대입, 관계, 로직, 조건, 비트 파이썬이랑 다른 것 '/'는 변수가 정수형일 때 정수부분, 즉 몫만 출력한다. 정수형/정수형의 결과는 언제나 정수이다. %f로 포맷한다고 해서 실수형으로 출력되지 않는다. 오류가 뜬다. 정수형과 실수형의 연산결과는 언제나 실수형이다. 산술변환의 과정을 거쳐 숫자의 범위가 큰 자료형으로 자료형들이 바뀐다 #include #defineSECOND_PER_MINUTE 60 int main() { int input = 1000; int minute = input / SECOND_PER_MINUTE; int second = input % SECOND_PER_MINUTE; printf("%d초는 %d분 %d초 입니다 \n", input, minute, second); return 0; } 1. 증감 연산자 #inc.. 2023. 1. 20.