【编程语言 · C语言 · 指针】

什么是指针?

指针在C编程中非常重要,因为它们使你可以轻松地处理内存位置。

指针是数组,字符串以及其他数据结构和算法的基础。

指针是一个变量,其中包含另一个变量的地址。换句话说,它“指向”分配给变量的位置,并且可以间接访问该变量。

指针使用*符号声明,语法如下:

指针数据类型 *标识符 

实际的指针数据类型是十六进制数,但是在声明指针时,必须指出它将指向的数据类型。

星号 * 声明一个指针,并应出现在用于指针变量的标识符旁边。 

以下程序演示了变量,指针和地址:

int j = 63;
int *p = NULL;
p = &j; 

printf("The address of j is %x\n", &j);
printf("p contains address %x\n", p);
printf("The value of j is %d\n", j);
printf("p is pointing to the value %d\n", *p); 

关于此程序,需要注意以下几点:

在将指针分配给有效位置之前,应将其初始化为NULL。

可以使用&符号为指针分配变量的地址。

要查看指针指向的内容,请再次使用 *,如 *p 中所示。

在这种情况下,* 被称为间接或取消引用运算符。该过程称为取消引用。

程序输出类似于:

The address of j is ff3652cc
p contains address ff3652cc
The value of j is 63
p is pointing to the value 63 

一些算法使用指向指针的指针。这种类型的变量声明使用**,并且可以分配另一个指针的地址,如下所示:

int x = 12;
int *p = NULL
int **ptr = NULL;
p = &x;
ptr = &p;

【选词填空】声明指向var变量的指针:

int var = 42;
int ptr =  var;

#

@

&

*

表达式中的指针

指针可以与任何变量一样在表达式中使用。算术运算符可以应用于指针所指向的任何对象。

例如:

int x = 5;
int y;
int *p = NULL;
p = &x;

y = *p + 2; /* y 被赋予 7 */
y += *p;     /* y 被赋予 12 */
*p = y;       /* x 被赋予 12 */
(*p)++;      /* x 增加到 13 */

printf("p指向值 %d\n", *p); 

运行结果:

p指向值 13

注意,++运算符需要括号才能增加所指向的值。使用--运算符时也是如此。

【单选题】指针适用于哪个?

指针存储变量的值

指针可以与任何变量一样在表达式中使用。

指针是无用的,使程序员陷入噩梦

你可能感兴趣的:(c语言,算法)