为什么指针不打印任何值?

  • 本文关键字:打印 任何值 指针 c++
  • 更新时间 :
  • 英文 :


我正在尝试使用指针的基本c程序,这是我的代码

#include <stdio.h>
int main()
{
int *p;

for(int i=0;i<10;i++){
*p = &i;
printf("%d",*p);
}

return 0;
}

输出:

main.c:16:12: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
*p = &i;
^
...Program finished with exit code 0

不打印该值。是否有任何问题在分配变量i持续从循环指针?

p为指针。因此,按如下方式将指针赋值给它。

p = &i;

然后在代码中按如下方式使用它。

#include <stdio.h>
int main()
{
int *p;

for(int i=0;i<10;i++){
p = &i;
printf("%d",*p);
}

return 0;
}

修复了使用std::cout作为输出的c++风格。(为什么不在c++中使用printf())

#include <iostream>
int main()
{
int* p{ nullptr }; // initialize before use. 
for (int i = 0; i < 10; i++) 
{
p = &i;
std::cout << *p << " ";
}
return 0;
}

使用此代码。我想它会成功的

int* p =NULL;
*p = sizeof(i); // casting int to pointer

这里p是一个整型指针,指针是一个变量存储另一个变量的地址。所以你必须把变量i的地址赋值给变量p,比如

p=&i;

在这一行中,您将i的地址存储在变量p中。当你像指向*p一样指向p时,它会给出该地址的值。

#include <stdio.h>
int main()
{
int *p;

for(int i=0;i<10;i++){
p = &i;
printf("%d",*p);
}

return 0;
}

相关内容

  • 没有找到相关文章

最新更新