上述应该是函数调用,传参数应该是已经定义好的,如下:
GOODS goods[100];// 此处根据需要变化100
case 1: inquire_name(goods);break;
指针存储的是地址,而不是实际的值,所以你调用指针变量就是说直接找到它的地址,然后执行它所需要执行的操作,函数也不例外
我不清楚你的疑问到底指哪些.我就你写的这些代码解读:
int read_column_numbers(int columns[], int max)函数功能:
传参数组首地址,及数组最大长度.
用户输入max个整数,只保存其中的正整数(负数忽略),如果正整数的个数是偶数则返回个数.否则程序结束.
void rearrange(char *output,char const *input,int n_columns, int const columns[])函数功能:
传参 数组output首地址 , 数组input首地址 ,用户输入正整数个数,正整数数组
迭代数组,根据用户的输入的数字作为input起始下标,复制并拼接到数组output中(具体逻辑我不研究了).
strncpy(output + output_col,input + columns[col],nchars)这里就是就是拼接复制,变量output_col记录的是output 已保存字符长度,output + output_col就是每次接在已有字符后面放复制的字符.input + columns[col]是用户输入的数字作为起始位置的偏移量取nchars个字符复制到output 中.
总结:
第一段:
首先数组名作为参数传递,无论形参定义是指针还是数组(int *columns 和 int columns[ ]效果是一样的),最终都是传地址.
第二段:
数组形参定义char const *,修饰符const表示常量不可修改,这里const修饰的是*input,表示数组指针指向的地址内容不能修改,但是数组指针本身值可以修改.也就是说函数中可以改变input指向的地址(比如input++),但是不能改变其指向的值(比如input[0]='A').
以上就是土嘎嘎小编为大家整理的指针调用函数c语言相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!