关于c语言指针问题
#include<stdio.h>voidswap(int*p1,int*p2){intt;t=*p1;*p1=*p2;*p2=t;}voidmain(){inta,b,...
#include<stdio.h>
void swap(int * p1,int * p2)
{ int t;
t=*p1;*p1=*p2;*p2=t;
}
void main()
{ int a,b,*p1,*p2;
scanf("%d,%d",&a,&b);
p1=&a; p2=&b;
swap(p1,p2);
printf("a=%d,b=%d\n",a,b);
printf("*p1=%d,*p2=%d",*p1,*p2);
}
将swap中的中的换成以下
void swap(int * p1,int * p2)
{ int * t;
t=p1;p1=p2;p2=t;
}
值就不能交换了,请问是为什么呢
指针t不是指向p1 p1指向p2 p2指向了t所指的吗
应该可以交换的吧 展开
void swap(int * p1,int * p2)
{ int t;
t=*p1;*p1=*p2;*p2=t;
}
void main()
{ int a,b,*p1,*p2;
scanf("%d,%d",&a,&b);
p1=&a; p2=&b;
swap(p1,p2);
printf("a=%d,b=%d\n",a,b);
printf("*p1=%d,*p2=%d",*p1,*p2);
}
将swap中的中的换成以下
void swap(int * p1,int * p2)
{ int * t;
t=p1;p1=p2;p2=t;
}
值就不能交换了,请问是为什么呢
指针t不是指向p1 p1指向p2 p2指向了t所指的吗
应该可以交换的吧 展开
7个回答
展开全部
已知:char c[8] = "beijing", *s = c; int i; 则下面的输出语句中,错误的是 _____。选择一项:A. printf("%s\n", s);B. for (i = 0; i < 7; i++) printf("%c", s[i]);C. printf("%s\n", *s); //s是指向字符串的指针,而*s则为s指向的第一个字符,而与*s配合的输出格式是%s,显然配合失当,就是说,C是错误的。D. for (i = 0; i < 7; i++) printf("%c", c[i]);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个没有操作指针指向的变量
更多追问追答
追问
请问但是t=p1不就是指向了p1指向的地址,p1=p2就是p1指向p2所在的地址,p2=t不就是p2指向t所在的地址,也就是之前的p1吗
追答
是你说的这样 但这并没有改变什么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
30分钟彻底学会C语言指针
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include
<stdio.h>
int
main()
{
int
a[5]
=
{1,2,3,4,5};
int
*ptr
=
(int*)(&a+1);//定义ptr指针并且把a[]数组后面的地址给他的地址给它
printf("%d
%d"
,
*(a+1),
*(ptr-1)
);//*(a+1)就是a[1];*(ptr
-
1)表示数组最后一个元素
return
0;
}
<stdio.h>
int
main()
{
int
a[5]
=
{1,2,3,4,5};
int
*ptr
=
(int*)(&a+1);//定义ptr指针并且把a[]数组后面的地址给他的地址给它
printf("%d
%d"
,
*(a+1),
*(ptr-1)
);//*(a+1)就是a[1];*(ptr
-
1)表示数组最后一个元素
return
0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询