C 함정 과 결함 제3 장 의미 '함정'

2279 단어 C
1. 포인터 배열 ① 주의: ① C 언어 에는 1 차원 배열 만 있 고 배열 의 크기 는 컴 파일 기간 에 상수 로 정 해 야 합 니 다.C 언어 에서 배열 의 요 소 는 모든 유형의 대상 일 수도 있 고 다른 배열 일 수도 있 습 니 다. 그러면 다 차원 배열 을 모방 할 수 있 습 니 다.② 한 배열 에 대해 서 는 두 가지 일 만 할 수 있 습 니 다. 배열 의 크기 를 확인 하고 이 배열 아래 에 0 으로 표 시 된 요 소 를 가리 키 는 지침 을 얻 을 수 있 습 니 다.배열 에 대한 조작 은 사실상 지침 을 통 해 이 루어 진다.배열 아래 표 시 된 연산 은 모두 대응 하 는 지침 연산 과 같다 는 것 이다.
② 하나의 배열 을 설명 합 니 다: *, int a [3]; /a 는 3 개의 정형 요 소 를 가 진 배열 이다. *,struct{ int p[4]; double x; }b[17]; //b 는 17 개의 요 소 를 가 진 배열 로 그 중의 모든 요 소 는 하나의 구조 체 이다. *,int calendar[12][31]; //calendar 는 하나의 배열 입 니 다. 이 배열 은 12 개의 요 소 를 가지 고 있 으 며, 각 요 소 는 31 개의 정형 요 소 를 가 진 배열 입 니 다. *,p 는 지침 입 니 다. 이렇게 쓸 수도 있 습 니 다. p = a; /포인터 p 는 배열 a [0], p + 1 은 배열 a [1] 를 가리 키 고 *,int (*ap)[31];//ap 는 31 개의 요소 가 있 는 배열 을 가리 키 는 지침 으로 2 차원 배열 에 해당 합 니 다.
int (*monthp)[31];
for(monthp = calendar; monthp < &calendar[12]; monthp++)//         
{
    int *dayp;
    for(dayp = *monthp; dayp < &(*monthp)[31]; dayp++)//       
        *dayp = 0;
}

2. 함수 로 서 의 배열 성명 은 배열 이름 을 매개 변수 로 사용 하면 배열 이름 은 바로 이 배열 의 첫 번 째 요 소 를 가리 키 는 지침 으로 바 뀝 니 다.
3. 경계 계산 과 비대 칭 경계 C 언어 에서 n 개의 요 소 를 가 진 배열, a [n], 요소 의 아래 표 시 된 범 위 는 0 에서 n - 1 이다.한 배열 의 하 계 는 m 이 고 상 계 는 n 이 며 배열 은 n - m + 1 개의 요소 가 있다.
4. 구 치 순서 연산 자 & & | 와!조작 수 에 대한 처리 방식 은 이 를 '진짜' 로 보 거나 '가짜' 로 보 는 것 이다.연산 자 & & 연산 자 | | 먼저 왼쪽 조작 수 에 대해 값 을 구하 고 왼쪽 결과 가 정확 할 때 만 오른쪽 조작 수 에 대해 구 합 니 다.연산 자 &, | 과 ~ 조작 수 에 대한 처리 방식 은 이 를 바 이 너 리 의 비트 시퀀스 로 보고 각각 각 비트 를 조작 하 는 것 이다.예 를 들 어 10 (1010) & 12 (1100) 의 결 과 는 8 (이 진 은 1000) 이다.
4. 567917. 함수 main 에 반환 값 C 언어 를 제공 합 니 다. main 함수 의 반환 값 을 통 해 운영 체제 에 이 함수 의 실행 이 성공 적 인지 실 패 했 는 지 알려 줍 니 다.반환 값 은 0 은 프로그램 이 실 행 된 것 을 의미 하고, 반환 값 은 0 이 아니면 프로그램 이 실 패 했 음 을 나타 낸다.어떤 값 도 되 돌려 주지 않 으 면 실행 에 실패 할 수도 있 습 니 다

좋은 웹페이지 즐겨찾기