본문 바로가기

c언어22

랜덤값(난수)추출 #include 에 time()함수가 있다. 초단위로 변하는 값이다. 보통 rand() 함수의 시드로써 함께 사용한다. srand( (unsigned)time( NULL ) ); 위 코드를 실행하면 rand함수의 시드를 설정한다. (시드에 따라서 rand함수가 추출하는 난수의 값이 달라지게된다) 2022. 11. 20.
c에서 문자열 여러 개를 배열에 저장하는 법 #include int main() { char* strArr[3] = {"첫번째", "두번째", "세번째"}; printf("첫번째 : %s\n", strArr[0]); printf("두번째 : %s\n", strArr[1]); printf("세번째 : %s\n", strArr[2]); } char* 로 배열을 만들면 된다. 또는 scanf("%d", &n); char strArr[n][50]; for(int i = 0; i < n; i++){ scanf("%s", strArr[i]); } for(int i = 0; i < n; i++){ printf("%s\n", strArr[i]); } 이차원 배열을 만들어 주면 된다. 주의할 점은 문자열의 개수를 앞에 적어주고 문자열의 최대 길이를 뒤에 적어 줘야.. 2022. 11. 19.
const의 의미, 활용법 const는 constant(상수)의 줄임말이다. 수학의 상수처럼 변하지 않는 값이라는 뜻이다. => 값을 변경하려고 하면 오류 메시지를 출력한다. 주로 포인터를 이용할 때 사용된다. 포인터를 잘못 사용하게 되면 원본 데이터를 훼손 시킬 수도 있는데 이때, 포인터 앞에 const를 적어주면 이러한 상황을 막을 수 있다. ↓ 예시 ↓ int equal(struct student const *p1, struct student const *p2){ if (p1 -> number == p2 -> number) return 1; else return 0; } 2022. 11. 10.
구조체를 가리키는 포인터와 간접 멤버 연산자 -> 예를 들어, struct student{ int number; char a[10]; double grade; } struct student s = { 24, "kim", 4.3 }; struct student *p; p = &s; printf("%d %s %f", (*p).number, (*p).name, (*p).grade); 이 경우, (*p).number, (*p).name, (*p).grade 는 각각 s.number, s.name, s.grade 와 같다. *p.number 라고 하지 않고, (*p).number라고 하는 것은 전자와 같이 코드를 짜면 *(p.number)와 같은 의미가 되어버린다. 그리고 (*p).number를 p->number 라고 표현할 수 있다. 둘은 동일한 의미이다. -.. 2022. 11. 10.