我不明白为什么我的代码不起作用
I am not understanding why my code is not working?
我想已经有人问过这种类型的问题了抱歉,但有人能告诉我为什么这是错误的吗。
int a[]={10,20,30,45,50};
int j;
for(j=0;j<=4;j++)
{
cout<<(*a);
a++;
}
好的,如果上面代码中的指针a不能递增,那么下面的代码就可以了,这只是因为指针首先被分配给一个变量,然后它递增了吗。
int var[] = {10, 100, 200};
int i, *ptr;
//let us have array address in pointer
ptr = var;
for ( i = 0; i < MAX; i++)
{
printf("Value of var[%d] = %dn", i, *ptr );
// move to the next location
ptr++;
}
*a指的是a[]的第一个元素,它是10。您将在++处得到一个编译器错误。这是因为你不能增加a的值。*a是一个指向[]的第一个元素的常量指针,它的地址不能更改。。
应该是:
int a[]={10,20,30,45,50};
int j;
for(j=0;j<=4;j++)
{
cout<<*(a+j);
}
因为数组不是指针,所以它不编译:
带int arr[] = {...}
:
-
arr
和&arr
的值必然是相同的 -
arr
指向一个有效的内存地址,但不能设置为指向另一个内存地址
带int* ptr = ...
:
-
ptr
和&ptr
的值不一定相同(事实上,它们大多不同) -
ptr
可以设置为同时指向有效和无效的内存地址,次数与一样多
相关文章:
- 为什么这段代码不起作用,我该如何解决?
- 为什么这些完全相似的代码不起作用?
- 我不明白为什么我的代码不起作用并且需要更长的时间来运行
- 我正在尝试解决一个需要数组总和值但代码不起作用的问题,我想做这样的事情
- 注释一行使代码工作,而没有它,代码不起作用
- 我的C++合并排序代码不起作用。我在这里错过了什么?
- C ++函数重新定义(代码不起作用 - 逻辑错误)
- 试图找到一个数字的平方根,但代码不起作用。C++
- 字符串代码不起作用
- 我正在努力在随机数组中查找最小值,有人知道为什么我的代码不起作用?C++
- 从 C++ 转换的 C# 代码不起作用
- 有人可以解释我,为什么我的代码不起作用吗?
- 当我使用长整型时,我的代码不起作用,它与 int 一起工作得很好
- 无法在控制面板中创建轨道栏.示例代码不起作用
- CUDA我的共享内存代码不起作用,我缺少什么
- 为什么 C++ 中的 shell 脚本代码不起作用?
- 为什么C++代码不起作用(strncpy_s)?
- 模板函数声明为 void - 代码不起作用?
- 无法弄清楚为什么这个Arduino代码不起作用?
- "check if member exists using enable_if"中修改的代码不起作用