Point 란 번지. 포인터변수란 포인터를 저장할수 있는 변수 = 메모리의 특정위치를 저장

int *imsip; 의 정의는 imsip에 번지를 저장할수 있다는 뜻.

&연산자가 특정변수의 선두번지를 뜻한다면, *연산자는 그반대.
포인터변수에 저장된 선두번지를 참조하여 하나의값을 취함.


*imsip =1000;     //imsip가 가르키는곳에 1000을 대입.
  └→ imsip가 가르키는곳이 정확히 명시되어야함.

-Point는 형구별없이 무조건 4byte!

'C++ > 열혈강의C++' 카테고리의 다른 글

Const  (0) 2011.08.23
NameSpace  (0) 2011.08.17
매크로 함수  (0) 2011.08.17
함수 오버로딩  (0) 2011.08.17


    int function (int n) {}
    int function (char n) {}
    int function (int n, char n) {}


※디폴트 매개변수 → 전달되지않은 인자를 대신하기 위해, 기본값이 설정되어있는 변수.
  
   int function ( int a=0) { return a+1;}


※사용법

#include < iostream>
using namespace std;

int BoxVolume(int lenght, int width=1, int height=1);
int main()
{
  cout<<"[3,3,3]:" <<BoxVolume(3,3,3) <<endl;
  cout<<"[5,5,def]:"<<BoxVolume(5,5) <<endl;
  cout<<"[7,def,def]:"<<BoxVolume(7) <<endl;
}

int BoxVolume (int lenght, width=1, int height=1)
{
   return length*width*height;
}

'C++ > 열혈강의C++' 카테고리의 다른 글

Const  (0) 2011.08.23
NameSpace  (0) 2011.08.17
인라인 함수  (0) 2011.08.17
매크로 함수  (0) 2011.08.17


#include<stdio.h>
void main()
{
   typedef int_var;
   int a=100;
   int_var b=200;
   printf("%d %d \n",a,b);
}


*typedef 실행시 그다음부터는 int형 자료형을 사용할때 int_var이라는 병명을 사용해서 선언가능.

◎구조체에 적용

typedef struct student {
   int id;
   char name[20];
   int kor,eng,math;
   char address[100];
}People;
void main()
{
   People ST, *p;
   p= &ST;
       .
       .
       .
}


People → 별명으로 선언

'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글

구조체와 포인터  (0) 2011.08.17
구조체와 배열  (0) 2011.08.17
구조체  (0) 2011.08.17
Call by Referance  (0) 2011.08.17
Call by Address  (0) 2011.08.17

void main()
{
   p= &ST;
   printf("학번입력");
   scanf("%d"&p->id);

   printf("이름입력");
   scanf("%s",&p->name);
 
  printft("국,영,수 입력");
  scanf("%d %d %d",&p->kor,&p->eng,&p->math);

  printft("집주소");
  scanf("%s",&p->address);

  printf("학번: %d", p->id);
  printf("이름:%s", p->name);
  printf("국,영,수 성적: %d %d %d",p->kor, p->eng, p->math);
  printf("집주소:%s",p->address);


※scanf("%s",p->name); → 띄어쓰기로 공백입력시 null값으로 인식, 띄어쓰기 전까지만 기억함
    gets(p->name); → 한번만입력했는데 enter키가 자동으로 들어감 gets() 전에 scanf로
                                입력받을때 enter키가 버퍼에 남아있어서 gets()가 받아서 name에 넣어버림
    getch(p->name); → enter값을 받아서 저장도안하고 사라짐

⊙해결방법: 버퍼 초기화 fflush(stdin);
                     
-   fflush(stdin);
    gets(p->name);

'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글

typedef  (0) 2011.08.17
구조체와 배열  (0) 2011.08.17
구조체  (0) 2011.08.17
Call by Referance  (0) 2011.08.17
Call by Address  (0) 2011.08.17

#include<stdio.h>
struct student{
   int id;
   char name[20];
   int eng,kor,math;
   char address[100];
};

void main()
{
   struct student ST[2]= {{201154321,"hong gil dong",90,91,92."서울 강남구 대치동"},
                                  {201112345,"kang gil dong",98,80,86,"서울 종로구 혜화동"}};

for(int i=0; i<2; i++)
{
   printf("ST구조체의 크기: %d \n",sizeof(ST));
   printf("ST학번: %d" ,ST[i].id);
   printf("ST이름: %s" ,ST[i].name);
                   .
                   .
                   .
}



*scnaf("%d",&ST.id) ← 로값을 입력받을수 있음.
  ST.id= 12345 형식으로 값직접대입가능.

구조체의 크기는 136
 136byte 가 2개선언 →ST[0] , ST[1]

'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글

typedef  (0) 2011.08.17
구조체와 포인터  (0) 2011.08.17
구조체  (0) 2011.08.17
Call by Referance  (0) 2011.08.17
Call by Address  (0) 2011.08.17
구조체란?

사용자가 직접 자료형을 만들어서 사용하는것!

사용법                                       ex)
struct 구조체{                                            struct my_spec{
   자료형 변수 ;                                              int tall;
};                                                                 int  age;
                                                                   char name[20];
                                                                 };

위의 ex) 와같이 선언후
struct my_spec A;     → int 형 2개 char 형 한개를 묶어서 my_spec라는 자료형 A를 만듦.
A.tall = Value;



#include<stdio.h>
struct student{
   int id;
   char name[20];
   int kor,eng,math;
   char address[100];
};

void main()
{
   struct student ST= {201154321, "hong gil dong", 90,91,92,"서울 강남구 대치동"
};
   printf("ST구조체의 크기 : %d \n" sizeof(ST));
   printf("ST의 학번 : %d \n",ST.id);
   printf("ST의 이름: %s \n",ST.name);
   printf("ST의 성적(국,영,수):%d %d %d \n",ST.kor,ST.engm,ST.math);
   printft("ST의 주소:%s \n",ST.address);
}



*구조체를 정의하고 main에서 구조체 자료형(student)을 ST라는 변수로 선언.
  초기화는 구조체 타입에 정의한순서대로 (int, char,int,int,int,char)
printf문에서 ST.id  → 구조체의 접근은 .(마침표)로 접근


'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글

구조체와 포인터  (0) 2011.08.17
구조체와 배열  (0) 2011.08.17
Call by Referance  (0) 2011.08.17
Call by Address  (0) 2011.08.17
Call By Value  (0) 2011.08.17

Call by Referance란? 전달인자에 별명을 붙여줌.

ex)  void main()
{
   int name=10;
   int &nick= name;
}

※swap함수를 부를때 별명으로 &imsi_x, &imsi_y를 만듦.


#include<stdio.h>
void swap(int &imsi_x, &imsi_y);

void main()
{
   int x=10, y=20;
   printf("함수 호출전 x=%d y=%d",x,y);
   swap(x,y);
   printf("함수호출후 x=%d y=%d",x,y);
}

void swap(int &imsi_x, int &imsi_y)
{
   int temp=0;
   temp = imsi_x;
   imsi_x = imsi_y;
   imsi_y = temp;
   printf("함수안의 imsi_x = %d imsi_y = %d",imsi_x,imsi_y);
}

첫번째 main x=10, y=20
두번째 swap x=20, y=10
세번째 main x=20, y=10

'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글

구조체와 배열  (0) 2011.08.17
구조체  (0) 2011.08.17
Call by Address  (0) 2011.08.17
Call By Value  (0) 2011.08.17
다중포인터  (0) 2011.08.17

Call by Address란? 주소를 넘겨주는 방식


#include<stdio.h>
void swap(int *imsi_x, int *imsi_y);
int main()
{
   int x=10, y=20;
   printf("함수호출전 x= %d y=%d",x,y);
   swap(&x,&y);
   printf("함수호출후  x=%d y=%d",x,y);
}

void swap(int *imsi_x, int imsi_y)
{
   int temp=0;
   temp= *imsi_x;
   *imsi_x = *imsi_y;
   *imsi_y = temp;
   printf("swap 함수안 imsi_x=%d , imsi_y=%d",imsi_x,imsi_y);
}


첫번째 main  x=10, y=20
두번째 swap x=20, y=10
세번째 main x=20, y=10


*주소를 직접참조하여 값이 변경가능

'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글

구조체  (0) 2011.08.17
Call by Referance  (0) 2011.08.17
Call By Value  (0) 2011.08.17
다중포인터  (0) 2011.08.17
다차원 배열(이차원배열)  (0) 2011.08.16