【发布时间】:2020-05-28 10:09:00
【问题描述】:
我无法通过引用数组和指针来获取单个元素信息。 此外,我无法重写指针值并将其传递回主引用。
任何帮助将不胜感激!
void strings(char word[][40], char *first, char *last, int size);
int main()
{
char word[10][40];
char first[40], last[40];
int i, size;
printf("Enter size: \n");
scanf("%d", &size); //storing size
printf("Enter %d words: \n", size);
for (i=0; i<size; i++)
scanf("%s", word[i]); //storing user input
deriving(word, first, last, size);
printf("First word = %s, Last word = %s\n", first, last);
return 0;
}
void deriving(char word[][40], char *first, char *last, int size)
{
int count = 0;
char *ptr = word; //why is it when i store the user input as a ptr variable i am able to get each element?
while(*ptr != '\0')
{
printf("number of lines = number of elements \n");
ptr++;
}
while(*(word+count) != '\0')
{
count ++;
printf(" element is present"); // it is stuck in a infinite loop here.
}
first = "first word"; //why does this two commands not carry into the main function? since i am rewriting the whole pointer
last = "last word";
}
【问题讨论】:
-
请记住,C 中的参数是按值传递的。这意味着值被复制到参数变量中。修改副本(例如分配给参数变量)只会修改副本,而不是原始副本。您可能想了解在 C 中模拟通过引用传递,或者将指针传递给数组的第一个元素,然后将其
strcpy传递给。
标签: c arrays pointers multidimensional-array c-strings