c - 将索引放在指针后面的 [] 括号内是什么意思?

标签 c pointers

我正在研究一些 C 代码只是为了理解,我发现了一个在 [] 之间有索引的指针,就像它是一个数组一样(如“pointer[i]”);我不明白这是什么意思或者它是如何工作的

这是我找到它的一段代码:

struct turing_machine_t{
    struct linked_list_t*** transitions;
    bool* acceptors;
    unsigned int max_steps;
    unsigned int num_states;
};

void delete_turing_machine(struct turing_machine_t* tm){ 
    int i,j;
    for(i = 0; i < tm->num_states; i++){
        if(tm->transitions[i] != NULL){
            for(j = 0; j < ALPHABET_SIZE; j++){
                struct linked_list_t* tl = tm->transitions[i][j];

                //after here there are just some free

它来自图​​灵机模拟器,但这并不重要; 如果我是对的,transition是一个三重指针,但是transition[i]和transition[i][j]是什么意思?如果它不是数组,那么这些索引的含义是什么?

最佳答案

如果指针 ptr 指向一组连续的对象,则 ptr[i] 将引用对象的第 i+1 个元素该组就像 ptr 是一个数组一样。 tm->transitionstm->transitions[i] 可能就是这种情况。

关于c - 将索引放在指针后面的 [] 括号内是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57316573/

相关文章:

c++ - 函数指针在C和C++中都立即返回吗?

c - 如何在C中找到文件指针的当前行位置?

c - 在 C 中将指针类型转换为多维数组

c - 增量运算符未显示预期结果

c - 调用整数并使用函数将数字添加到用户输入崩溃的程序

从 Boost object_pool 构造的指针的 C++ Boost 二进制序列化

c++ - 段错误 C++ 矩阵

c - execl 在服务器端的 while(1) 循环中不起作用; C脚本

java - 比较 float 及其副本

c - 警告 : format ‘%d’ expects argument of type ‘int’ , 但参数 3 的类型为 ‘int *’