gpt4 book ai didi

c - 尝试打印表单数组或数组地址...不明白?

转载 作者:太空宇宙 更新时间:2023-11-04 01:37:43 24 4
gpt4 key购买 nike

新来的,在你们的大力帮助下尝试学习一段 C,这可能是这里的基本问题....抱歉你是从基础开始的。

void main()
{

char* arr[3] = {"baba","tata","kaka"};

char* arr1[3] = {"baba1","tata1","kaka1"};

char* arr2[3] = {"baba2","tata2","kaka2"};

char** array_all[] = {arr,arr1,arr2};

printf("%s\n",*array_all[0]);

//please guide me how to access individual entity(as arr[1], arr1[2],arr3[1]) //from each array using array_all

}

最佳答案

我不确定这是否正是您要找的..但这是我目前所了解的。

您想要访问 array_all 的各个元素(元素 arr、arr1 和 arr2)?如果是这样,那么您所做的就是...

array_all[0][i];

其中 i 是您要访问的元素。

这样做的原因是因为索引运算符([ 和 ])实际上取消了对指针的引用并偏移了您指定的指针(如将其添加某个整数,即在内存中向下移动)。如果您不知道用某个整数添加指针会发生什么,我建议您阅读指针算法。

例如:

int x[] = { 1, 2, 3 };
// writing x[i] is the same as *(x + i)
int i = 2; // the element you wish to access
*(x + i) = 4; // set the ith (3rd) element to 4
*(x + 1) = 43; // set the 2nd element to 43

// Therefore...
// x now stores these elements:
// 1, 43, 4

// proof: print out all the elements in the array
for(int i = 0; i < 3; ++i)
{
printf("x[%i]=%i\n", i, x[i]);
}

此外,写 x[0] 与写 *x 相同,因为数组名实际上指向数组的第一个元素。

哦还有一件事,main 实际上应该返回一个整数结果。这主要用于程序中的错误检查,0 通常表示没有错误发生,其他每个错误代码(0 以外的数字)是与您的程序相关的特定错误,您可以选择。即

int main()
{
// e.g. for an error code
/*
if(someErrorOccured)
{
return SOME_ERROR_OCCURED_RETURN_VALUE;
}
*/
return 0; // this is at the end of the function, 0 means no error occured
}

关于c - 尝试打印表单数组或数组地址...不明白?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11555565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com