指针,课后作业21
#include <stdio.h>int main(void)
{
int a, b, c, t;
int *pa, *pb, *pc;
printf("请输入三个数:");
scanf("%d%d%d", &a, &b, &c);
pa = &a;
pb = &b;
pc = &c;
if (a > b)
{
t = *pa;
*pa = *pb;
*pb = t;
}
if (a > c)
{
t = *pa;
*pa = *pc;
*pc = t;
}
if (b > c)
{
t = *pb;
*pb = *pc;
*pc = t;
}
printf("%d <= %d <= %d\n", *pa, *pb, *pc);
printf("%d <= %d <= %d\n", a, b, c);
return 0;
}
这里的11~13的格式不是应该写成这样吗:
int *pa = &a;
int *pb = &b;
int *pc = &c; 本帖最后由 zltzlt 于 2020-4-29 17:42 编辑
前面已经声明了指针变量,这里是给指针的地址赋值,不是给指针指向的变量赋值(而且这时指针的地址未赋初始值,是一个野指针),所以不用加星号。 并不是。
最开始定义指针要加*,是因为那是指针的标准。
这个要加*,是代表这个是取值运算符,也就是给pa的值赋值。 前面没有
int
所以不加 '*' zltzlt 发表于 2020-4-29 17:37
前面已经声明了指针变量,这里是给指针的地址赋值,不是给指针指向的变量赋值(而且这时指针的地址未赋初始 ...
明白了,谢谢。 zltzlt 发表于 2020-4-29 17:37
前面已经声明了指针变量,这里是给指针的地址赋值,不是给指针指向的变量赋值(而且这时指针的地址未赋初始 ...
很清楚,您不提醒野指针我都没想到,但是这个最佳在上一个问题的时候说好了给3楼了。希望在下一个问题里还能见到您的身影,哈哈哈
页:
[1]