본문 바로가기

C언어

C언어 포인터변수 포인터 변수에 대해 알아보자. ip 라는 변수에는 int형 변수의 주소를 담을 수 있다. int* ip로 해도 상관없다. 변수에 값을 넣고 그 변수의 주소를 담아서 나타내는 것을 포인터변수라고 한다. num 에는 10을 넣고 ip에는 num의 주소값을 넣는다. 주소값은 실행할 때 마다 바뀌지만 num은 고정값이다. ip=&num : ip에 num의 주소를 넣음 * : 참조 연산자이다. 변수앞에 붙는다. num의 주소를 ip에 넣는다. *ip의 값을 20으로 지정해보았다. list[0]의 시작주소값이 나타난다. 그 시작 주소값을 ip에 넣는다. 시작주소로 가서 시작부터 4바이트 까지(int형이라서) 내가 입력한 값이 list[3]으로 가서 입력한 값을 출력하게 된다, &list[3] , list+3 , *.. 더보기
C언어 함수들의 정의 C언어 함수에 대해 알아보자 아래에 다른 함수들을 지정한다 하더라도 main함수는 제일 위에 있어야 한다. 이렇게 위에 main을 설정한 후 add함수를 설정하면 된다. 결과는 실행하지만 밑에 보면 add가 정의되지 않았습니다 라고 뜨는것을 확인할 수 있다. 이렇게 add함수가 있다는 것을 void main에 알려줘야 한다. 그러기 위해선 void 위에다가 설정을 한다. 이렇게 설정하는 것을 함수의 원형이라고 한다. 라이브러리 함수 컴파일러에서 제공하는 함수를 라이브러리 함수라고 한다 ex) printf , scanf 등등.. 랜덤함수(난수함수) 난수를 생성하는 함수이다 주로 암호학, 게임, 시뮬레이션 등에서 필수적으로 사용한다. 게임 같은 경우 몬스터들이 랜덤으로 등장되어야 하기 때문에 rand를 사용.. 더보기
C언어 while문(break,continue) while문에 대해 알아보자 앞에서 말했듯이 변수는 맨 처음에 선언해야 한다 int i,j ; j=2부터 9가 될때까지 증가하며 i는 1부터 9가 될때까지 증가한다. i가 1에서 9까지 증가가 되고 나면 j는 +1이되어 2에서 3이된다. 이런식으로 구구단이 2단에서부터 9단까지 출력되는것이다. j는 몇단인지 단 수를 나타내주는것이다. 여기서 중요한 점은 i의 위치순서가 중요하다. 조건이거나 증감식일땐 왠만하면 for문을 사용하는게 간편하다 scanf를 통해 사용자가 원하는 값을 입력할 수 있도록 한다. whie(i3) 입력값 i가 1보다 작거나 3보다 클때 즉 선택 범위를 벗어났을 때 다시 입력하라. 선택범위 안에 들어왔을 때 while문은 종료가 된다. while 문은 초기화하지 않으면 안에 쓰레기값이.. 더보기
C언어 while문과 for문 우선 while문에 대해 알아보자 while문은 while(조건식){조건식이 참일 때 수행할 문장} 이런식이다. if 문하고 거의 비슷하다고 보면 된다. 하지만 다른점이 있다면 거짓이 나타날 때 까지 계속 반복한다는 것이다. i는 1로 초기화를 시켰을 때 while(i 더보기
C언어 switch문 switch문을 하기전에 우선 전에 했던 if문을 간단하게 보자 int grade로 변수를 만들고 scanf로 사용자가 원하는 값을 입력하도록 위에 설정을 해둔다. 그런 다음 if문에 조건을 제시하면 되는데 아래 사진 같은 경우는 성적을 나타낼 때 사용한다. 하지만 그러기위해선 몇가지 연산자를 알아야 한다. 우선 논리연산자를 알아보자 논리 연산자는 ( && (AND) , || (OR) , !(NOT) )이렇게 세가지가 있다 &&가 뜻하는 의미는 AND의 뜻이다 즉 양쪽의 항이 참과 거짓이 들어가고 왼쪽항과 오른쪽항이 모두 참이어야 실행한다. 범위안에 속하지 않다면 거짓이다. || 는 OR의 뜻이다. 오른쪽과 왼쪽항 둘중 하나만 참이어도 참으로 실행한다. ! 는 NOT을 뜻한다(값을 반전시켜주는 기능을 한.. 더보기
C언어 if 문 제어문에 대해 알아보자 제어문은 조건문과 반복문으로 나누어 진다 조건문 : if문 , switch~case문 (잘 몰라도 if문으로 대체 가능) 반복문 : for문 , while문 (둘 다 서로 대체 가능) 조건문(if 문) if 문은 만약에~~라면 이라는 영어 단어와 같은 뜻을 가지고 있다. 조건식 자리 if() 안에 들어갈 자리의 조건은 참,거짓으로 대답할 수 있는 것만 넣어준다. if(조건식){조건식이 참일 때 수행할 문장을 써준다.} 간단한 예를 들어 이해해보자 우선 int age; 를 통해 age라는 변수의 이름을 지정하고 int 를 통해 값이 정수인것을 확인할 수 있다. printf("나이 입력:"); 이라는 문장으로 사용자가 무엇을 입력해야 할지 첫문장을 나타내준다. scanf를 통해 사용자.. 더보기
C언어 입력함수 scanf 입력함수 scanf에 대해 알아보자 scanf("변환문자","주소값") 이라는 것을 알아야 한다 우선 버퍼는 새로 실행시킬때 마다 새로 만들어 진다. 정수를 입력할 때 스페이스바는 무시하고 정수만 입력할 수 있다. 실수 입력 %f와 %lf를 사용한다. printf를 사용할 땐 %g를 사용했지만(필요없는 수를 버림) %f와 %lf누느 원하는 자리수 까지 나타내주기 때문에 실수를 나타낼 때 유용하다 %f(float) , %lf(double) 이므로 자료형에 맞게 사용하면 된다. 문자를 입력할때 앞에 숫자를 입력받고나서 문자를 입력받으면 문제가 생긴다 왜냐하면 버퍼에는 엔터가 남아있기 때문에. 문제를 해결하기 위해선 버퍼를 비워줘야 한다. 문자같은 경우 가장 처음에 나타내지 않는다면 계속 버퍼비우기를 해줘야한.. 더보기
C언어 배열과 입력함수 배열과 임력함수에 대해 알아보자 우선 변수는 문자열을 저장할 수 없고 단일문자만 저장할 수 있다 단일문자에서 여러개의 데이터를 저장하고 싶을때 하나씩 저장해서 이어붙이는 것을 배열이라고 한다. 문자열은 배열로 저장한다. 연관있는 데이터들을 저장할 때 배열을 많이 사용하곤 한다. 배열의 시작은 0부터 이다. 즉 5까지의 배열이 있을 때 0,1,2,3,4,5 이다. grade[4]라는 것은 5번째 자리에 있는 배열의 값을 말한다. index 초과 grade[4] 까지 지정했지만 위에처럼 grade[5] 를 나타낼 때 결과값이 나오고 실행은 한다. 하지만 위에처럼 경고창이 나타난다 왜그럴까? 그 이유는 지정된 값은 grade[4] 까지라서 grade[5]는 언제든지 사라질 수 있다는 경고의 메세지인것이다. 이.. 더보기