C语言中的指针是什么?
指针是包含内存位置的变量。指针是一种变量。 它必须在代码中声明,并且必须在使用之前进行初始化。
指针的声明具有以下格式:
type *name;
上面的代码中,type
指针标识为char
,int
,float
等。名称是指针变量的名称,该名称必须是唯一的。
星号(*
)将变量标识为指针,而不是常规变量。
以下行声明了一个char
指针char_pointer
:
char *char_pointer;
下面一行代码创建了一个double
指针:
double *rainbow;
要初始化指针,必须将其值设置为内存位置。
该位置不能是内存中的随机地址,它必须是程序中另一个变量的地址。 例如:
char_pointer = &my_char;
前面的语句将char_pointer
指针变量初始化为my_char
变量的地址。两个变量都是char
类型。 执行该语句后,char_pointer
指针包含my_char
变量的地址。
以下代码显示指针char_pointer
包含变量my_char
的地址或内存位置。
#include <stdio.h>
int main()
{
char my_char;
char *char_pointer;
my_char = 'A'; /* 初始化 char 变量 */
char_pointer = &my_char; /* 初始化指针 */
printf("关于变量 'my_char' 的信息:\n");
printf("大小:\t\t%ld\n",sizeof(my_char));
printf("内容:\t%c\n",my_char);
printf("地址:\t%p\n",&my_char);
printf("关于变量 'char_pointer':\n");
printf("内容\t%p\n",char_pointer);
return(0);
}
执行上面示例代码,得到以下结果:
关于变量 'my_char' 的信息:
大小: 1
内容: A
地址: 0109F7FF
关于变量 'char_pointer':
内容 0109F7FF