c언어 기초 겅부c언어 기초 겅부

#define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고로 인한 컴파일 에러 방지

switch (num1) <- num의 값에 따라 분기
{
case 1:
	printf("1입니다.\n");
    break;
case 2
	printf("2입니다\n");
    break
default:
	printf("default\n");
    break;
}

#반복문
#포인터

int main(){
int *numPtr; //포인터 변수 선언*
int num1 =10;
numPtr=&num1; // num1의 메모리 주소를 포인터변수에 저장
  • 포인터 변수에는 메모르 주소가 저장되어 있다.
    이때 메모리 주소가 있는 곳으로 이동해서 값을 가져오고싶다면
    역참조 연산자 * 를 사용한다.

@vood 포인터 사용하기.?
@이중포인터 사용하깅
지금까진 변수의 포인터를 선언했음 그렇다면 포인터의 포인터도 가능하지 않을까?
이번에는 포인터의 메모리 주소를 저장하는 / 포인터의 포인터를 선언해보겠습니다...
그러렴..

#메모리
malloc ->사용->free

  • 메모리 할당하기
    메모리를 사용하려면 malloc함수로 사용할 메모리 공간을 확보해얗 합니다.
    흠냐냐..
    메모리 할당. 해제 함수 stdlib.h

    포인터 = malloc(크기);
    void *malloc(size_t_Size);
    성공하면 메모리 주소를 반환, 실패하면 NULL을 반환.

    itn *numPtr2;

    numPtr2=malloc(sizeof(int)); // int크기 4바이트만큼 동적 메모리 할당
    .
    .
    .
    free(numPtr2); // 동적으로 할당한 메ㅗㅣ 해제.

  • 이번에는 할당한 메모리에 값을 저자ㅇ해보겠습니다..네..

    ```

    int main(){

    int *numPtr;
    
    numPtr=malloc(sizeof(int)); //동적메모리할당
    * numPtr = 10;				// 포인터를 역참조한 뒤 값 할당
    printf("%d\n", *numPtr); 
    
    free(numPtr);
    
    return 0;

    }

  • 메모리 내용을 한꺼번에 설정하기
    포인터를 역참조한 뒤 값을 할당할 때는 해당 자료형 크기만큼만 할당할 수 있습니다 memset 함수를 사용하면 메모리의 내용을 원하는 크기만큼 특정값으로 설정할 수 있슴
    이름은 memory set에서 따옴(string.h 헤더파일에 선언되어있습니당) @ memset(포인터, 설정할값, 크기);
  • 널 포인터 사용하기
    메모리가 할당된 포인터도 있지만, 메모리가 할당되지 않은 포인터도 있겠죠?
    int * numPtr1 = NULL;
    if(ptr==NULL)
    {
    	ptr = malloc(1024);
    }

#배열
C언어로 학생 30명의 성적평균을 구하려면 어케 해야할까요?
간단하게 변수 30개를 선언하고 모두 더한 뒤 30으로 나누면 됩니다.
.. 만약에 학생 수가 3000명이라면 웅앵...
배열이 이런일을 쉽게 해준답니다

int main()
{
	int numArr[10] = { 11, 22,33, ... 99, 110}; 
    		
}

배열을 선언할때 크기 생략하기
초기화 해야 배열크기생략 가넝

  • 배열을 0으로 초기화하기 : 자료형 배열이름[크기] = {0,};
int main()
{
	int numArr[10] = {0,};
  • 배열의 크기 구하기
int numArr[10] = {11,22, ... , 99 110};

printf %d sizeof(numArr) //40 : 4바이트의 크기의 요소가 10개 이므로 40 
printf %d sizeof(numArr) / sizeof(int) // 10: 배열의 크기를 구할때는 전체공간을
요소의 크기로 나눠준당.

참고) 배열의 크기와 인덱스
C언어는 인덱스가 배열의 범위를 벗어났는지 검사하지 않으므로
프로그래머가 항상 이 부분을 생각하면서 작성해야 합니다.
배열의 크기(요소갯수)를 구해놓고, 배열에 접근하기 전에 인덱스가
요소개수-1 을 넘지 않는지 확인하는 것도 좋은 방법입니다.

  • 배열을 포인터에 넣기

#문자열
#구조체
#함수
#파일입출력

좋은 웹페이지 즐겨찾기