如果我创建一个像:
这样的指针 int *pointer;
也是在C语言中创建的变量(称为指针)?为什么/为什么不呢?
答案 0 :(得分:6)
让我们直截了当地说明术语:
int *pointer
声明变量pointer
int
" 答案 1 :(得分:1)
不,指针就像一个int:一个数字。它恰好是一个标识内存位置的数字,如果某个内容存储在该内存位置,则可以将其称为地址。像int一样,指针可以存储在变量中。存储指针的变量可以称为指针变量。
答案 2 :(得分:1)
问题:代码可以有一个变量和一个同名的指针吗?
答案是否定的,因为这些名称在同一范围内;;
如果他们各自在不同的功能(或不同的文件)本地,那么他们在不同的范围内'那么,YES就可以有相同的名字。
答案 3 :(得分:0)
您拥有的是类型为pointer
的变量名int *
,即指向int
的指针。这不为您提供了存储int
的空间。
例如,如果您这样做:
int *pointer;
*pointer = 1;
您将调用undefined behavior,因为您将尝试取消引用未初始化的指针。
然而这是有效的。
int value;
int *pointer;
pointer = &value;
*pointer = 1;
在此示例中,我们将pointer
设置为int
类型变量的地址。然后,我们可以取消引用该变量来读取/写入它指向的位置。
总而言之,声明指向类型的指针并不会自动为类型本身提供空间。