C 动作和变量
C actions and variables
为什么我使用:
char paraula[15];
int longparaula=0;
copia_paraula(paraula, longparaula);
它说longparaula=0? paraula 没关系,包含我输入的字符的值,但 longparaula 始终为 0。如果我不初始化 longparaula,它始终等于一个随机值。它等于数组的经度,不是吗?就好比函数可以修改"paraula"的valueo,但是不能修改longparaula的值...
void copia_paraula(char taula[15], int Longitud){
int i=0;
while ((c!=' ') & (c!='.')){
taula[i]=c;
scanf("%c", &c);
i++;
}
Longitud=i;
}
提前致谢!
C是按值传递。
这意味着当调用 copia_paraula()
时 Longitud
收到存储在 longparaula
中的副本。
在 copia_paraula()
中,代码只是修改 Longitud
,即 longparaula
的副本。这就是为什么 Longitud
不改变它的值。
通过传递其地址,指向 longparaula
存储位置的指针,将 "reference" 向下传递到 longparaula
。
然后将新值写入指针指向的位置:
void copia_paraula(char taula[15], int * pLongitud)
{
int i = 0;
// while ((c != ' ') & (c != '.')) // you do not want to perform a bit-wise "and"-operation
while ((c != ' ') && (c != '.')) // but a logical, && is the logical "and"-operator
{
taula[i] = c;
scanf("%c", &c);
i++;
}
*Longitud = i;
}
这样称呼它:
char paraula[15];
int longparaula = 0;
copia_paraula(paraula, &longparaula);
确保代码不会写出 char
-数组的边界留作练习。
为什么我使用:
char paraula[15];
int longparaula=0;
copia_paraula(paraula, longparaula);
它说longparaula=0? paraula 没关系,包含我输入的字符的值,但 longparaula 始终为 0。如果我不初始化 longparaula,它始终等于一个随机值。它等于数组的经度,不是吗?就好比函数可以修改"paraula"的valueo,但是不能修改longparaula的值...
void copia_paraula(char taula[15], int Longitud){
int i=0;
while ((c!=' ') & (c!='.')){
taula[i]=c;
scanf("%c", &c);
i++;
}
Longitud=i;
}
提前致谢!
C是按值传递。
这意味着当调用 copia_paraula()
时 Longitud
收到存储在 longparaula
中的副本。
在 copia_paraula()
中,代码只是修改 Longitud
,即 longparaula
的副本。这就是为什么 Longitud
不改变它的值。
通过传递其地址,指向 longparaula
存储位置的指针,将 "reference" 向下传递到 longparaula
。
然后将新值写入指针指向的位置:
void copia_paraula(char taula[15], int * pLongitud)
{
int i = 0;
// while ((c != ' ') & (c != '.')) // you do not want to perform a bit-wise "and"-operation
while ((c != ' ') && (c != '.')) // but a logical, && is the logical "and"-operator
{
taula[i] = c;
scanf("%c", &c);
i++;
}
*Longitud = i;
}
这样称呼它:
char paraula[15];
int longparaula = 0;
copia_paraula(paraula, &longparaula);
确保代码不会写出 char
-数组的边界留作练习。