我刚刚开始研究 C++,我似乎无法理解几个概念。
语境
结构:
typedef struct {
int left;
int right;
int mid;
} boundtype;
功能:
boundtype sortintarray(int *curArray[], boundtype bounds){
int left(bounds.left);
int right(bounds.right);
unsigned int refValue(*curArray[(left+right)/2]);
while (left < right){
if (*curArray[left] > refValue){
if (*curArray[right] < refValue){
int swap(*curArray[left]);
*curArray[left] = *curArray[right];
*curArray[right] = left;
right--;
left++;
} else{right--;}
} else{left++;}
}
bounds.left = left;
bounds.right = right;
bounds.mid = (left + right)/2;
return bounds;
};
函数调用:
unsigned int pancakes[10]; //Filled via std::cin
int size(sizeof(pancakes)/sizeof(int));
boundtype bounds(0,size - 1);
bounds = sortintarray(&pancakes, bounds);
我的问题
1)
当我定义一个结构时,是否可以执行以下操作:
typedef struct{
int a;
int b;
int c = a/b;
}
并期望 c 在 a 和 b 更新时不断更新?
2)
我传入结构/返回结构/定义函数的方式是否正确?
3)
我知道*
引用地址的值,而&
引用值的地址。我对如何在函数中使用它们感到困惑。如何传入值,如何在函数输入中定义它,如何在函数中引用该值?
我对这个特定示例的全部目标是编辑原始数组而不在函数中制作副本。