【发布时间】:2014-01-06 10:29:08
【问题描述】:
好的,我有这个代码:
#include <stdio.h>
#include <stdlib.h>
#define ARR_SIZE 5
struct mys
{
double first;
unsigned long second;
char str[10];
};
int main(int argc, char** argv)
{
size_t i = 0;
struct mys thes[ARR_SIZE] =
{
{1.1, 1, "First"},
{2.2, 2, "Second"},
{3.3, 3, "Third"},
{4.4, 4, "Fourth"},
{5.5, 5, "Fifth"}
};//load array of structures with values
for (; i < ARR_SIZE; ++i)
fprintf(stdout, "second->%lu\n", thes[i].second);//loop through array thes and print element second
return (EXIT_SUCCESS);
}
现在,我想获取第零个元素 thes 的第二个元素的地址,然后使用它循环遍历数组 thes 并打印每个第二个元素。
#include <stdio.h>
#include <stdlib.h>
#define ARR_SIZE 5
struct mys
{
double first;
unsigned long second;
char str[10];
};
int main(int argc, char** argv)
{
size_t i = 0;
unsigned long * ptr = NULL;//pointer to unsigned long
struct mys thes[ARR_SIZE] =
{
{1.1, 1, "First"},
{2.2, 2, "Second"},
{3.3, 3, "Third"},
{4.4, 4, "Fourth"},
{5.5, 5, "Fifth"}
};
//first loop
for (; i < ARR_SIZE; ++i)
fprintf(stdout, "second->%lu\n", thes[i].second);
ptr = &thes[0].second;//get the address of the second element of the zero'th array structure and store it in ptr
// Now I want to use the above pointer ptr to loop through the array thes and display the second element like I did above, but I can't manage to do that.
//The output of this loop should be the same as the first loop
return (EXIT_SUCCESS);
}
所以,我已经实现了指针,但是在编写第二个循环的代码时遇到了问题。任何帮助表示赞赏。
【问题讨论】:
-
@itwasntpete 我的代码是 C :)