我可以指向数组的特定地址吗?

标签 c pointers structure

我有几个问题:

1) 什么是

ps_lst_tmp->ps_greather = & ps_lst_tmp [1];

意思是?

2)如果我正确理解指针,那么如果我写在代码末尾

ps_lst_tmp++;

那么指针 ps_lst_tmp 将指向下一个元素,并且... ps_lst_nodes 是否也指向下一个元素?

整个代码:

struct s_node_lnk_lst  /* structure used for list  */
{
    sMSC_NODE             *ps_node;       /* node */
    unsigned long int      uli_occurs;    /* occurences */ 
    struct s_node_lnk_lst *ps_greather;   /* greather neighbour in list */
} *ps_lst_nodes = NULL,*ps_lst_tmp;

ps_lst_nodes = (struct s_node_lnk_lst *) malloc 
               (sizeof (struct s_node_lnk_lst) * uli_nb_items);
ps_lst_tmp     = ps_lst_nodes;
ps_lst_tmp->ps_greather = & ps_lst_tmp [1];

谢谢

最佳答案

ps_lst_tmp->ps_greather = & ps_lst_tmp [1]ps_lst_tmp->ps_greather = ps_lst_tmp + 1

相同

ptr + i 相当于 &ptr[i]ps_lst_tmp++ 相当于 ps_lst_tmp = &ps_lst_tmp[1].

因此,ps_lst_tmp++ 将指向 ps_lst_nodes[1]。同时ps_lst_nodes不会改变

关于我可以指向数组的特定地址吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35522386/

相关文章:

c++ - 解压 C++ 指针/引用语法

c++ - C++ 中带有 new 关键字的二维结构数组!

c - 在为工作和隔离位和字节制作二进制掩码时,从二进制转换为十六进制的最快方法是什么?

C 从函数返回数组

c - 从指针访问结构体成员

c - 如何访问指针数组中的指针指向的值?

使用传递的字符串创建列表节点

c - 使用 Glib 向 GSList 添加自定义结构

改变 const 指针的值

c++ - MultiByteToWideChar 终止带有垃圾的输出缓冲区,但未报告任何错误。为什么?