C언어 배우기 1
정보처리 전문학사를 진행하면서 C언어를 배우게 됐는데 그 과정에서 정리할 만한 것들을 몇 개 쓰려고 한다
짜잘한 거부터 몇 개 정리하고 짧은 사칙연산 계산프로그램 코드를 써보려 한다
1. Visual studio에서 가끔 마우스클릭을 했는데 커서가 더블클릭한 것처럼 잡혀서
ctrl + v하기 곤란해질 때가 있었다
이 경우에는 insert키로 다시 돌리면 된다
내가 아무래도 백스페이스를 누르다가 insert키를 잘못 누른 듯하다
2. scanf_s 함수는 함수 하나에 입력값 하나만 쓰기를 권장한다
이번에 사칙연산 계산기를 만들다가 깨달았는데
scanf_s 함수값 하나에 입력값 3개를 연달아 집어넣으려고 하니까
계속해서 오류가 나서 실행 자체가 안 됐다
알고보니 함수 하나에 입력값 여러 개를 넣으려고 하면
훨씬 더 복잡하게 코딩해야 하고 오류가 잘난다고 하더라
scanf_s("%d %c %d", &a, &b, &c);
이런 식으로 넣으려고 하면 오류가 나지만
scanf_s("%d", &a);
scanf_s("%c", &b);
scanf_s("%d", &c);
이런 식으로 나눠서 넣으면 정상실행된다
물론 warning은 떴지만 일단은 정상실행됐다
저렇게 다르게 썼지만 6+2를 넣으면 8이 되는 그런 출력값은 동일하다
3. 할당연산자와 산술연산자는 다르다
정~~말 초보적인 실수인데
while문에서 변수값을 조건에 넣고 변수값을 ++가 아니라 +3 같은 식으로 증가시키고 싶을 때
단순히 변수값에 +3을 붙였다가 무한루프에 빠지는 에러가 발생했다
그냥 +=으로 더해서 할당하는 연산자를 붙이면 된다 nail = nail + 5와 nail += 5는 같다
#include <stdio.h>
int main() {
int nail = 0;
int count = 0;
while (nail < 100) {
nail += 5; // 바로 이 부분. 변수값을 5씩 증가시켜서 100이 되면 while문을 탈출해야 되는데 nail + 5 이런 식으로 썼다 가 nail값이 0으로 고정되어 무한루프가 발생했다 변수값은 더했는데, 할당이 안 된 것이다
printf("달팽이가 이동한 거리 = %d m\n", nail);
(nail < 50) ? (nail -= 1) : (nail -= 2);
printf("달팽이가 이동하고 미끄러진 거리 = %d m\n", nail);
printf("===================\n");
count++;
}
printf("이동한 횟수 = %d회\n", count);
return 0;
4. Visual studio 단축키
ctrl + s로 저장하려다가 실수로 d를 눌렀는데, ctrl + d 명령어는 해당 줄에 있는 코드를 그대로 밑에 즉시 복사해준다
유용하게 쓸 거 같다
짜잘한 깨달음은 더 깨달은 게 생기면 더 업데이트할 예정.