C 指针反引用balagurusamy
指针在需要时取消引用,而不是在需要时取消引用,有什么问题。代码如下。 这里的错误是什么,无法理解。 在巴拉古鲁萨米的ansi c书中给出C 指针反引用balagurusamy,c,pointers,C,Pointers,指针在需要时取消引用,而不是在需要时取消引用,有什么问题。代码如下。 这里的错误是什么,无法理解。 在巴拉古鲁萨米的ansi c书中给出 int *p,m=100 ; p = &x ; printf("%d",p) ;/*error*/ 修复代码中的一些问题: #include <stdio.h> int main(void) { int *p, m = 100, x = 10; p = &x; // In words, making 'p' to
int *p,m=100 ;
p = &x ;
printf("%d",p) ;/*error*/
修复代码中的一些问题:
#include <stdio.h>
int main(void)
{
int *p, m = 100, x = 10;
p = &x; // In words, making 'p' to point to the address of 'x'
printf("Address %p contains a value %d..", (void *)p, *p);
// ^^ ^^^^^^^^^ ^
// Using the correct Typecasting Dereferencing
// format specifier the pointer the pointer
//
// Some code
return 0;
}
如果您尝试相同的代码,您应该会得到不同的结果,因为地址不太可能相同
说明:
在您提供的代码段中未定义x
- 当使用指针指向兼容的数据类型时,可以通过取消对指针的引用来打印值
- 如果要打印指针本身的值,需要先将其强制转换为
,然后使用void
格式说明符,而不是使用%p
%d
#include <stdio.h>
int main(void)
{
int *p, m = 100, x = 10;
p = &x; // In words, making 'p' to point to the address of 'x'
printf("Address %p contains a value %d..", (void *)p, *p);
// ^^ ^^^^^^^^^ ^
// Using the correct Typecasting Dereferencing
// format specifier the pointer the pointer
//
// Some code
return 0;
}
如果您尝试相同的代码,您应该会得到不同的结果,因为地址不太可能相同
说明:
在您提供的代码段中未定义x
- 当使用指针指向兼容的数据类型时,可以通过取消对指针的引用来打印值
- 如果要打印指针本身的值,需要先将其强制转换为
,然后使用void
格式说明符,而不是使用%p
%d
x
?请发布整个代码。%d”
用于打印int
,p
不是int
,而是指向int
的指针,因此您使用了错误的格式说明符,如果要显示指针指向的位置的值,需要取消引用:printf(“%d”,*p)
,如果要显示指针本身的值,则需要切换到适当的格式说明符:printf(“%p”,(void*)p)代码>什么是x
?请发布整个代码。%d”
用于打印int
,p
不是int
,而是指向int
的指针,因此您使用了错误的格式说明符,如果要显示指针指向的位置的值,需要取消引用:printf(“%d”,*p)
,如果要显示指针本身的值,则需要切换到适当的格式说明符:printf(“%p”,(void*)p)代码>