个性化阅读
专注于IT技术分析

数据结构与算法中的指针

指针用于指向存储在计算机内存中任何位置的值的地址。要获取存储在该位置的值, 称为取消引用指针。指针可提高重复过程的性能, 例如:

  • 遍历字符串
  • 查找表
  • 控制表
  • 树状结构
DS指针性能

指针详细信息

  • 指针算术:指针中可以使用四种算术运算符:++, -, +, –
  • 指针数组:你可以定义数组以容纳多个指针。
  • 指向指针的指针:C允许你将指针放在指针上, 依此类推。
  • 在C中传递指向函数的指针:通过引用或地址传递参数, 使传递的参数可以在被调用函数中更改。
  • 从C中的函数返回指针:C允许函数返回指向局部变量, 静态变量和动态分配的内存的指针。
DS指针

程序

指针

#include <stdio.h>

int main( )
{
int a = 5;
int *b;
b = &a;

printf ("value of a = %d\n", a);
printf ("value of a = %d\n", *(&a));
printf ("value of a = %d\n", *b);
printf ("address of a = %u\n", &a);
printf ("address of a = %d\n", b);
printf ("address of b = %u\n", &b);
printf ("value of b = address of a = %u", b);
return 0;
}

输出量

value of a = 5                                                                                                                 
value of a = 5                                                                                                                 
address of a = 3010494292                                                                                                      
address of a = -1284473004                                                                                                     
address of b = 3010494296                                                                                                      
value of b = address of a = 3010494292

程序

指针到指针

#include <stdio.h>

int main( )
{
int a = 5;
int *b;
int **c;
b = &a;
c = &b;
printf ("value of a = %d\n", a);
printf ("value of a = %d\n", *(&a));
printf ("value of a = %d\n", *b);
printf ("value of a = %d\n", **c);
printf ("value of b = address of a = %u\n", b);
printf ("value of c = address of b = %u\n", c);
printf ("address of a = %u\n", &a);
printf ("address of a = %u\n", b);
printf ("address of a = %u\n", *c);
printf ("address of b = %u\n", &b);
printf ("address of b = %u\n", c);
printf ("address of c = %u\n", &c);
return 0;
}

指针到指针

value of a = 5                                                                                                                 
value of a = 5                                                                                                                 
value of a = 5                                                                                                                 
value of a = 5                                                                                                                 
value of b = address of a = 2831685116                                                                                         
value of c = address of b = 2831685120
address of a = 2831685116                                                                                                      
address of a = 2831685116                                                                                                      
address of a = 2831685116                                                                                                      
address of b = 2831685120                                                                                                      
address of b = 2831685120                                                                                                      
address of c = 2831685128
赞(0)
未经允许不得转载:srcmini » 数据结构与算法中的指针

评论 抢沙发

评论前必须登录!