Pointers Arduino中的指针,不更新外部变量
不确定我做错了什么,因为aValue和bValue没有更新Pointers Arduino中的指针,不更新外部变量,pointers,arduino,Pointers,Arduino,不确定我做错了什么,因为aValue和bValue没有更新 int aValue; int bValue; void setup() { aValue = 0; bValue = 0; } void loop() { someFunc(&aValue, &bValue); // code for printing aValue and bValue } void someFunc(int *a, int *b) { *a++;
int aValue;
int bValue;
void setup() {
aValue = 0;
bValue = 0;
}
void loop() {
someFunc(&aValue, &bValue);
// code for printing aValue and bValue
}
void someFunc(int *a, int *b) {
*a++;
*b++;
}
问题是指针和后增量并不能满足您的需要 如果你写信
void someFunc(int *a, int *b) {
*a = *a+1;
*b = *b+1;
}
它起作用了
看
有关为什么
*a++
递增指针本身的解释,请参见。问题在于指针和递增后的内容并不是您想要的
如果你写信
void someFunc(int *a, int *b) {
*a = *a+1;
*b = *b+1;
}
它起作用了
看
有关为什么
*a++
递增指针本身的解释,请参见。问题在于指针和递增后的内容并不是您想要的
如果你写信
void someFunc(int *a, int *b) {
*a = *a+1;
*b = *b+1;
}
它起作用了
看
有关为什么
*a++
递增指针本身的解释,请参见。问题在于指针和递增后的内容并不是您想要的
如果你写信
void someFunc(int *a, int *b) {
*a = *a+1;
*b = *b+1;
}
它起作用了
看
有关为什么
*a++
递增指针本身的说明。someFunc中的变量a和b是副本,您正在递增副本。
post增量的优先顺序高于指针反引用,因此您正在递增指针的副本。取消引用无效
如有疑问,请使用括号
void someFunc(int *a, int *b)
{
(*a)++;
(*b)++;
}
虽然有些人说你应该这么做
void someFunc(int *a, int *b)
{
++(*a);
++(*b);
}
因为从技术上讲,增量后返回一个值,而增量前只是增量。在这种情况下,大多数编译器将生成相同的代码。我从未看过AVR编译器。someFunc中的变量a和b是副本,您正在递增副本。 post增量的优先顺序高于指针反引用,因此您正在递增指针的副本。取消引用无效 如有疑问,请使用括号
void someFunc(int *a, int *b)
{
(*a)++;
(*b)++;
}
虽然有些人说你应该这么做
void someFunc(int *a, int *b)
{
++(*a);
++(*b);
}
因为从技术上讲,增量后返回一个值,而增量前只是增量。在这种情况下,大多数编译器将生成相同的代码。我从未看过AVR编译器。someFunc中的变量a和b是副本,您正在递增副本。 post增量的优先顺序高于指针反引用,因此您正在递增指针的副本。取消引用无效 如有疑问,请使用括号
void someFunc(int *a, int *b)
{
(*a)++;
(*b)++;
}
虽然有些人说你应该这么做
void someFunc(int *a, int *b)
{
++(*a);
++(*b);
}
因为从技术上讲,增量后返回一个值,而增量前只是增量。在这种情况下,大多数编译器将生成相同的代码。我从未看过AVR编译器。someFunc中的变量a和b是副本,您正在递增副本。 post增量的优先顺序高于指针反引用,因此您正在递增指针的副本。取消引用无效 如有疑问,请使用括号
void someFunc(int *a, int *b)
{
(*a)++;
(*b)++;
}
虽然有些人说你应该这么做
void someFunc(int *a, int *b)
{
++(*a);
++(*b);
}
因为从技术上讲,增量后返回一个值,而增量前只是增量。在这种情况下,大多数编译器将生成相同的代码。我从未看过AVR编译器。您正在递增指针;而不是它们所指向的值。使用
(*a)+代码>或*a+=1相反,我刚看到你的博文。也谢谢你!早些时候有人帮了我这个语法:)你错了。我在早些时候。没关系,你的帖子比我的早。我只是说我没看到您正在递增指针;而不是它们所指向的值。使用(*a)+代码>或*a+=1相反,我刚看到你的博文。也谢谢你!早些时候有人帮了我这个语法:)你错了。我在早些时候。没关系,你的帖子比我的早。我只是说我没看到您正在递增指针;而不是它们所指向的值。使用(*a)+代码>或*a+=1相反,我刚看到你的博文。也谢谢你!早些时候有人帮了我这个语法:)你错了。我在早些时候。没关系,你的帖子比我的早。我只是说我没看到您正在递增指针;而不是它们所指向的值。使用(*a)+代码>或*a+=1相反,我刚看到你的博文。也谢谢你!早些时候有人帮了我这个语法:)你错了。我在早些时候。没关系,你的帖子比我的早。我只是说我没看到我通过使用(*a)+使它也能工作;也谢谢你的帮助,我接受了它。我也通过使用(*a)+使它工作了;也谢谢你的帮助,我接受了它。我也通过使用(*a)+使它工作了;也谢谢你的帮助,我接受了它。我也通过使用(*a)+使它工作了;也谢谢你的帮助,我接受了。