E có hai ví dụ sau (e xin phép không khai báo thư viện cho nhanh):
int main()
{
char string[]="helloworld";
char *tim=NULL;
tim=strchr(string,'d');
if (tim!=NULL)
{
printf("ket qua la %s\n",tim);
}
}
Ví dụ 2
int main()
{
int tuoi=10;
int *pointer1=&tuoi;
printf("gia tri cua bien tuoi la %d\n",*pointer1);
}
Vấn đề e muốn đặt ra là tại sao ở ví dụ 1 con trỏ (tức biến tim trong phần printf không có dấu sao nhưng nó vẫn in ra giá trị biến kí tự mà nó trỏ vào. Còn nếu có thì lỗi) . Còn ví dụ 2 trong phần printf thì phải có * thì con trỏ mới in ra giá trị biến tuổi nó trỏ vào, còn nêuu không thì nó sẽ in ra giá trị của con trỏ pointer 1. Tại sao lại có sự khác biệt này ạ ??