作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在练习中,我们有一个结构 vector ,我们需要反转该 vector 的顺序。我已经在没有使用指针的情况下解决了问题,但我的直觉告诉我我应该使用指针,而且我不明白如何在不使用指针的情况下解决这个问题。我有点困惑,因为我已经有一段时间没有编写 C 代码了。对于变量/结构名称不是英文,我深表歉意,但它们非常接近,任何说英语的人都可以理解。
typedef struct{
char *str;
} elemento;
typedef struct{
int tamanho;
int capacidade;
elemento* elementos;
} vetor;
void vetor_inverte(vetor *vec){
elemento aux;
int i=0;
for(i=0; i<(vec->tamanho)/2; i++){
aux = vec->elementos[i];
vec->elementos[i] = vec->elementos[ vec->tamanho -1-i ];
vec->elementos[ vec->tamanho -1-i ] = aux;
}
}
最佳答案
假设 vector
的 elementos
字段是一个 elemento
数组,那么你所做的就很好。您将第一个与最后一个交换,然后将第二个与倒数第二个交换,依此类推。
当您进行交换时,它会复制 elemento
结构的每个字段。
我认为在这种情况下不需要涉及指针。
关于c - 为什么我不必使用指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35760331/
我是一名优秀的程序员,十分优秀!