c언어 열혈강의 14장 정리


포인터와 함수에 대한 이해

call-by-reference
call-by-value

함수의 인자로 배열 전달하기
기본적인 인자의 전달 방식
-값의 복사에 의한 전달

함수의 인자로 배열 전달하기

배열의 함수 인자 전달 방식
-배열 이름(배열 주소, 포인터)에 의한 전달
 
배열 이름 , 포인터의  sizeof연산
-배열 이름: 배열 전체 크기를 바이트 단위로 반환
-포인터 : 포인터의 크기(4)를 바이트 단위로 반환

#include <stdio.h>
int main(void)
{
   int arr[5];
   int *parr=arr;
  
   printf("%d \n",sizeof(arr)); // 40 출력
   printf("%d \n",sizeof(parr)); // 4출력
   return 0;
}

int *pArr vs. int pArr[]
-둘 다 같은 의미를 지닌다.
-선언 int pArr[]은 함수의 매개 변수 선언 시에만 사용 가능

call by value
-값의 복사에 의한 함수의 호출
-가장 일반적인 함수 호출 형태

call by reference
-참조(참조를 가능케 하는 주소 값)를 인자로 전달하는
형태의 함수 호출

scanf함수 호출 시 &를 붙이는 이유
scanf 함수는 val 의 주소값으로 접근을 한다. //call by reference
scanf("%d",&val);
scanf("%s",str);

포인터와 const 키워드
-포인터가 가리키는 변수의 상수화
 int a = 10;
 const int *p = &a;
 *a = 30 //error!
 a= 30   //ok!

-포인터 상수화
 int a=10;
 int b=20;
 int * const p = &a;
 p=&b  //erroe!
 *p = 30 //ok

const 키워드를 사용하는 이유
-컴파일 시 잘못된 연산에 대한 에러 메시지
-프로그램을 안정적 으로 구성
-프로그램 안정성 확보

 

 

 

 

 

by jinaida | 2007/05/04 19:23 | c언어관련 | 트랙백 | 덧글(0)
트랙백 주소 : http://jinaida.egloos.com/tb/1157715
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글



< 이전페이지 다음페이지 >