如果p
和temp
是兩個指針變量,其中p
包含NULL
和temp
指向一些內存地址。兩個指針變量可以指向相同的內存地址嗎?
現在假設p = temp;
這意味着現在p
指向相同的地址,其中temp
指向。
這是否意味着兩個指針變量p
和temp
現在指向相同的內存地址?
如果p
和temp
是兩個指針變量,其中p
包含NULL
和temp
指向一些內存地址。兩個指針變量可以指向相同的內存地址嗎?
現在假設p = temp;
這意味着現在p
指向相同的地址,其中temp
指向。
這是否意味着兩個指針變量p
和temp
現在指向相同的內存地址?
是兩個指針變量可以指向相同的對象:
指針是包含一個C對象的地址,或空指針對象。
多個指針可以指向相同的對象:
char *p, *q;
p = q = "a";
指針甚至可以指向自身:
void *p;
p = &p;
這裏是雙重鏈接循環列表另一示例與單個元素:next
和prev
鏈接都指向相同的位置,結構本身:
struct dlist {
struct dlist *prev, *next;
int value;
} list = { &list, &list, 0 };
是的!多個指針可以指向相同的東西。
是2個指針變量可以指向相同的存儲器地址。
我們知道指針是一個包含相同數據類型地址的變量。考慮下面的例子C
#include<stdio.h>
int main() {
int a,*pointer1;
a = 10;
pointer1 = &a;
int *pointer2;
printf("\n Val : %d",*pointer1); //This contains address of the variable a - so accessing it with * prints its value - value of 「a"
printf("\n Val : %d", *pointer2); //This contains some junk value - so accessing it with * causes segmentation fault - since there might not be memory address with that junk value
pointer2 = pointer1; //Now pointer1 reference i.e.; address value stored in pointer1 is made a copy and now both pointer1 and pointer2 will point to the same memory location
printf("\n Val : %d", *pointer2); //Now this would print the value of 「a"
return -1;
}
這同樣適用於鏈表地址。你的變量「p」和「temp」會指向相同的內存地址!
是的,它的確也是指針用例之一。 –
這就像問「兩個整數是否具有相同的值?」 – harold
@harold:這是一個非2s補充體系結構的技巧問題;-) – chqrlie