我有几个问题:
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/