본문 바로가기

개발 공부/C언어25

#15 C언어 [도전! 프로그래밍3/4번] srand 여러번 쓰면 안되는 이유 우선 코드 먼저 #include #include #include int main(){ int i=0,random=0; srand((int)time(NULL)); //현재시간 사용해서 시드설정 while(i 두번째인 9를 출력 한 것이고 while문 안에 srand를 넣는다면 0을 씨드값으로 첫번째인 4를 출력 -> 시간이 바뀌지 않았음으로 다시 0을 씨드값으로 초기화 -> 추출순서가 초기화 되어 다시 0을 씨드값으로 첫번째인 4를 출력 하게 된 것입니다. 2022. 8. 2.
#14 C언어 반복문과 조건문에서의 break; continue; return;의 차이점 break, continue, return의 차이는 뭘까요? 먼저 break;는 반복문(루프) 탈출이라고 보면 됩니다. 보통 if문을 반복문 안에 적고 그 안에 break를 사용할텐데 그러면 for(){ if{ break; } } 2022. 8. 2.
#13 C언어 변수형태/상수형태 배열과 포인터의 차이점과 공통점 한 줄 요약 포인터와 배열의 차이 - 문자열이 저장되는 곳이 다르다. 포인터와 배열의 공통점 - 둘 다 주소값을 가진다. 제가 C언어를 이해하는 데에 있어서 제일 중요한 한가지를 꼽자면 [배열의 이름]은 [배열의 시작주소 값]이다. 일 것입니다. int Arr[3] ; 일때 Arr을 단독으로 변수처럼 코드에 쓰면 무조건 Arr 배열의 시작주소값을 의미합니다. int Arr[3] ; int * ptr = Arr ; 이란 코드에서 int * ptr = Arr ; 은 Arr 배열의 시작주소 값을 ptr에 저장하겠다는겁니다. 그럼 Arr[1] = *(Arr+1) ; 인 것도 이해할 수 있으시겠나요? Arr[1] 과 *(Arr+1)은 완전히 같은 말입니다. 포인터가 잘 이해안가시는 분은 이 글을 참조하시면 됩니다.. 2022. 8. 2.
#12 C언어 포인터 앞에 int double 같은 자료형을 붙여줘야 하는 이유 int * ptr ; 이때 포인터 앞에 있는 int 같은걸 포인터 자료형이라고 합니다. 이건 포인터 변수가 데이터를 읽는 방식을 정하는 기준입니다. 포인터 변수가 있는데 이걸 컴파일러가 읽을때 얘는 누구냐?? 라는 질문을 합니다. 그럼 포인터가 저는 포인터라고 주소값 갖고 있는 애인데 그 중에서도 int형 주소를 읽슴다... 그래서 4씩 띄워서 읽슴다... 라고 답을 합니다. 그냥 집주소만 컴파일러한테 전달되면 컴파일러가 못 읽겠죠? 택배를 붙일때 3434라는 번호만 달랑 송장에 기입한다면 이걸 전화번호로 읽을지 집주소로 읽을지 모르겠는 것 처럼 컴파일러도 비슷한 심정일 겁니다. 10101001로 되어 있는 데이터만 덜렁 주면 황당하겠죠 그래서 10101001를 4씩 끊어읽으라는 말을 해줘야 하고 그래서.. 2022. 8. 2.
반응형