C 언어 에서 * 와 & 의 차이 - 코드 구현 설명

4061 단어 C 언어
  • * 포인터 연산 자 입 니 다. 변 수 는 포인터 유형 임 을 나 타 낼 수 있 습 니 다.포인터 변수 가 가리 키 는 저장 소 를 표시 할 수도 있 고 주소 에 저 장 된 값 을 가 져 올 수 있 습 니 다.
  • & 주소 기 호 를 찾 는 것 으로 특정한 변수의 주 소 를 얻 을 수 있 습 니 다
  • int *p=&a;
      
    int *p;
    p=&a;

    a 의 주 소 를 p 에 저장 하 는 것 을 표시 합 니 다 (a 의 주 소 를 p 에 할당 합 니 다)
    int *b=&a;
    int c=*b;

    포인터 b 가 가리 키 는 (* b) 저장 장치 (a) 를 c 에 할당 하 는 것 을 표시 합 니 다. 이때 c 는 새로운 변수 일 뿐 기 존의 a 값 을 바 꿀 수 없습니다.
    예제 코드:
    ////////////////////////////////////////////////////
    //                                           //
    //                                        //
    //    、  、  、    、                  //
    //    、    ,                       //
    ////////////////////////////////////////////////////
    #include
    #include
    
    //     
    typedef struct
    {
        char name[8];
        char sex[2];
        int  age;
        char tel[11];
        char addr[20];
    }person;
    
    //    
    void setData(person *p) //    
    {
        printf("                   :");
        //  :  char[]    &,      ???
        scanf("%s %s %d %s %s",&p->name,&p->sex,&p->age,&p->tel,&p->addr);
    }
    
    //    
    void getData(person p)  //    
    {
        printf("  :%s
    :%s
    :%d
    :%s
    :%s
    "
    ,p.name,p.sex,p.age,p.tel,p.addr); } void main() { person *p; p=(person*)malloc(sizeof(person)); setData(p); getData(*p); //*p p }

    좋은 웹페이지 즐겨찾기