Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

อธิบาย Reference และ Pointer ในภาษา C

Reference (อ้างอิง)

  • ชื่อเรียกอื่นของตัวแปรที่ประกาศไว้
  • เข้าถึงได้ผ่าน pass by value
  • ไม่สามารถเก็บค่า null ได้

Pointer (ตัวชี้)

  • เก็บที่อยู่ (address) ของตัวแปร
  • สามารถเก็บค่า null ได้
  • เข้าถึงผ่าน pass by reference
  • ไม่ต้อง initialize ขณะประกาศ

Syntax

datatype *variablename;  // pointer
pointer = &variable;      // initialization

ตัวอย่างโปรแกรม

#include <stdio.h>
int main() {
    int a = 2, b = 4;
    int *p;
    printf("add of a = %p\n", (void*)&a);
    printf("add of b = %p\n", (void*)&b);
    p = &a;
    printf("a value = %d\n", a);
    printf("*p value = %d\n", *p);
    printf("p value (address) = %p\n", (void*)p);
    p = &b;
    printf("b value = %d\n", b);
    printf("*p value = %d\n", *p);
    printf("p value (address) = %p\n", (void*)p);
    return 0;
}

ผลลัพธ์

add of a = 0x7ffc...
add of b = 0x7ffc...
a value = 2
*p value = 2
p value (address) = 0x7ffc...
b value = 4
*p value = 4
p value (address) = 0x7ffc...