C 초급 학습 - 12.19

문제: 분기 함수 어떻게 return: 여러 값 으로 대답 합 니까? 1. 다음 함수, 2. 전역 변수, 3. 파일, 4. 링크 와 용기, 5. 공유 메모리 에 저장 합 니 다.
함수.
기본 개념: 코드 의 기능 이 비슷 하고 독립 된 코드 를 하나의 독립 된 전체 로 밀봉 한다.중복 쓰기 코드, 함수 패키지 피하 기
장점: 간결 성 을 높이 고 개발 효율 을 높이 며 코드 의 중용 성 을 높이 면 프로그램의 유지보수 에 유리 하 다
1。분류 1:
시스템 함수: C 표준 라 이브 러 리 (시스템) 에서 제공 하 는 함수;예 를 들 어 printf, scanf 는 시스템 함수 로 대응 하 는 헤더 파일 만 포함 시 키 고 컴 파일 은 - lmath \ # include \ # include \ # include \ # include int main () {int = i; / 제곱 근 함수 int sum = sqrt (i); / / 잘못 보고 하면 - lm
        //   
        int a= pow(2,16);
        printf("2^16=%d
",a); char ch='q'; // a=toupper(ch); // char ch1=T; a=chtolower(ch1); // 10 0-100 srand(time(0));//srand(time(NULL)); int i=0; int sum = 0; for(i=0;i<10;i++) { sum = rand()%100; printf(%4d,sum); } return 0; }

사용자 정의 함수: 사용자 가 필요 로 하 는 함수
분류 2: 반환 값 이 있 는 함수: 함수 호출 이 끝 난 후 메 인 함수 에 값 을 되 돌려 줍 니 다. echo $? / / 이전 함수 의 반환 값 이 반환 값 이 없 는 함 수 를 봅 니 다. 함수 가 끝 난 후 반환 값 이 없습니다. 일반적으로 void 형식 으로 정의 합 니 다. (return;)
분류 3: 인삼 함수 가 있 습 니 다. 함수 이름 후 () 매개 변수 가 있 고 실제 인삼 은 형 삼 에 게 전 달 됩 니 다. 매개 변수 수 는 임 의 입 니 다. int text (int a) 는 인삼 함수 가 없습니다.
2. 함수 의 기본 정의: 무 참 함수 의 정의: DataType Function Name () / 괄호 는 {/ 함수 체 / / 실행 가능 한 문장 return;} 함수 의 정의 가 있 습 니 다. DataType Function Name (Type arg 1, Type arg 2) / / 매개 변수 목록 은 여러 개 있 을 수 있 습 니 다. 매개 변수의 유형 은 임의의 {/ 함수 체 return} 이 있 습 니 다.
주의: 3. 함수 의 성명, 함수 의 호출, 함수 의 정의 함수 의 정의: DataType Function Name (매개 변수 목록) {/ 함수 체 / / 실행 가능 한 문장} 함수 의 성명: DataType Function Name (매개 변수 목록), 주: 성명 할 때 매개 변수 목록 은 반드시 정의 시의 매개 변수 목록 과 일치 해 야 합 니 다!! 함수 가 호출 되 기 전의 임의의 위치 에 두 십시오!(이 함수 체 의 정의 가 호출 함수 위 에 있다 면 설명 을 쓰 지 않 아 도 됩 니 다. 그렇지 않 으 면 설명 을 써 야 합 니 다) 함수 호출: Function Name (value); / / 주의 번호 value: 수치 주: 함수 호출 실 삼 의 값 유형 은 함수 정의 형식 매개 변수 와 일치 해 야 합 니 다!! 실 삼: 실제 매개 변수, 즉 구체 적 인 수치 형 삼: 형식 매개 변수, 형 삼 의 정의 와 일반 변수의 정의 가 다 르 지 않 습 니 다. 형 삼 은 호출 이 발생 할 때 공간 을 분배 합 니 다. 함수 호출 이 발생 할 때 시스템 은 기본적으로 실 삼 값 을 부여 합 니 다.형 삼, 실 삼 의 개수 와 유형 은 형 삼 과 일치 해 야 한다. 실 삼 은 함수 호출 처 두 함수 간 에 상호 호출 함수 간 에 우선 순위 문제 가 없고 함수 간 은 등가, 평행 관계 가 허용 되 지 않 는 다.
void swap_addr(int *pa,int *pb)
{
//  
int temp=*pa;
*pa=*pb;
*pb=temp;
return ;
}
int main()
{
int a=0;
int b=0;
printf("input
"); scanf("%d,%d",&a,&b); printf("1=%d,%d
",a,b); swap_addr(&a,&b); printf("3=%d,%d
",a,b); return ; }

3. 함수 의 반환 값 이 반환 값 이 없 는 유형 함수 유형: void 이 유형 은 함수 의 반환 값 의 유형 을 결정 합 니 다. int 라면 반환 값 은 int 형 이 고 함수 text () 의 반환 값 을 받 아들 입 니 다. 같은 유형의 변수 로 int ret = text () 를 받 아들 여야 합 니 다.; 반환 값 이 뒤의 코드 에서 사용 되 지 않 을 경우 반환 값 을 받 아들 일 필요 가 없습니다. void 형식의 함수 가 아니라면 return 에 반환 값 이 있 는 함수 형식 이 있어 야 합 니 다.
return 의 역할: 함수 가 return 을 만나면 끝 납 니 다. 뒤의 문 구 는 실행 되 지 않 습 니 다.
키워드: 변수 국부 변수 와 전역 변수
부분 변수: 함수 에서 정 의 된 변 수 는 함수 가 끝 날 때 부분 변 수 는 자동 으로 메모 리 를 방출 합 니 다. 따라서 서로 다른 함수 에서 같은 변수 이름 을 사용 할 수 있 습 니 다. 전역 변 수 는 함수 체 밖에서 정 의 된 변 수 는 그 역할 도 메 인 은 정의 처 부터 본 파일 이 끝 날 때 까지 정의 되 지 않 기 전에 사용 할 수 없습니다.
변 수 는 정적 과 동적 정적 변수 와 동적 전역 변수 로 나 뉜 다. 무 현식 초기 화 시 기본 초기 화 값 은 0 이 고 동적 국부 변수: 무 현식 초기 화 시 기본 초기 화 값 은 무 작위 값 이다.
정적 부분 변수: 역할 영역 은 현재 함수 입 니 다. 정 의 된 위치 에서 {} 의 끝 위치 까지 입 니 다. 정적 부분 변 수 는 다시 초기 화 되 지 않 고 마지막 함수 가 종료 되 었 을 때의 값 을 사용 합 니 다.
정적 전역 변수: 라 이 프 사이클 은 프로그램 실행 에서 프로그램 종료 까지 입 니 다. 즉, 전체 실행 시간 을 관통 합 니 다. 다음 함수 가 호출 될 때 다시 초기 화 되 지 않 습 니 다. 또한 이 파일 만 사용 할 수 있 습 니 다.
전역 변수 와 국부 변수 가 이름 을 바 꾸 면 전역 변 수 를 자동 으로 차단 합 니 다. auto: 성명 변 수 는 동적 국부 변수 입 니 다. 예 를 들 어 auto int a = 5; static: 성명 변 수 는 정적 변수 이 고 전역 과 국부 두 가지 로 나 뉘 며 국부 변 수 를 수식 합 니 다. 전역 변수 와 함수 extern: 외부 변수 로 성명 합 니 다. extern int sum; 수식 함수: extern int text (); 성명 변수 나 함 수 는 외부 에서 정의 되 었 습 니 다. register: 레지스터 변수: 레지스터 에 직접 저장 합 니 다. CPU 레지스터 의 수량 이 제한 되 어 있 습 니 다. 여러 레지스터 변 수 를 정의 할 수 없습니다 const: 변수 상수 만 읽 고 값 을 변경 할 수 없습니다 const int num = 5; / int const num = 5; / / 변수 값 은 const int p 를 변경 할 수 없습니다. / int const p; / / 포인터 변수의 값 은 int const p 를 변경 할 수 없습니다. / /포인터 주 소 는 const int const p 를 변경 할 수 없습니다. / / 값 과 주 소 는 변경 할 수 없습니다.
extern int sum / / 컴 파일 시 sum 이 있 는 외부 파일 과 함께 컴 파일 / / 외부 변수 sum / 다른 파일 을 호출 하여 이 파일 의 호출 함수 (extern int text () 를 설명 합 니 다. / int text () {sum + = 8; printf ("sum =% d", sum), return;}
6. 함수 의 전송 값 주소
7. 포인터 함수 와 함수 포인터 함수: int text (); 되 돌아 오 는 것 은 주소 함수 포인터: int (pa) (): 함수 의 주 소 를 가리 키 며 함수 의 값 을 되 돌려 줍 니 다.
//  
void swap(int a,int b)
{
//  
int temp=a;
a=b;
b=temp;
printf("0=%d,%d
",a,b); return ; } void swap_addr(int *pa,int *pb) { // int temp=*pa; *pa=*pb; *pb=temp; return ; } int main() { int a=0; int b=0; printf("input
"); scanf("%d,%d",&a,&b); printf("1=%d,%d
",a,b); swap(a,b); printf("2=%d,%d
",a,b); swap_addr(&a,&b); printf("3=%d,%d
",a,b); return ; }

좋은 웹페이지 즐겨찾기