C语言指针有关问题?

如图,第二题没懂,求解释。那个t和*t给我整懵了。... 如图,第二题没懂,求解释。那个t 和 *t 给我整懵了。 展开
 我来答
月光下的qq
2020-03-30 · 科技优质答主
月光下的qq
采纳数:392 获赞数:668

向TA提问 私信TA
展开全部

需要注意的是,定义时的int *t中的t代表一个内存地址,这个地址指向的是一个整型数据。若有int *t=5 , t表示内存中指向一个整型数据的地址,此时才能单独用*t,就是表示取出t这个地址中所表示的数,那么就是5。

帐号已注销
2020-03-30
知道答主
回答量:23
采纳率:0%
帮助的人:5.7万
展开全部
你把指针看成和普通变量一样的东西就好了,指针里存的指针位置,你平时可以做一下实验,什么0146FB50 0146FB80啥的,既然是作为参数被传过去的,那自然一个函数是不可能对另一个函数里的局部变量做出操作的。
那么到底怎么实现传值呢?第一种,引用传值,比如很常见的
void swap(int& x, int& y)
{
int temp = 0;
temp = x;
x = y;
y = temp;
}
其中的&就起引用调用的作用(建议百度传值调用和引用调用),在这个函数里的改变将回传给调用它的地方。(使用的时候填swap(x, y);就好了,xy是int)

第二种方法,我们把两个数据的地址给交换函数,让交换函数把地址所对应的数字改了,例如你说的第二题,可以改成
void fun(char **x, char ** y)
{
char* p = *x;
*x = *y;
*y = p;
}
这样,就可以实现你要的传递功能了
,另外,你题里的那些指针是可以当做数组看的,比如void fun(char*x,char*y)改写成void fun(char x[],char y[])运行也是一点毛病都没有的,这个是c语言的语法糖之一,有个日本作家叫前桥和弥,他写的 征服C指针 建议你去读一下,他用了一本书的篇幅很详细的介绍了指针的前世今生
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GTA小鸡
高粉答主

2020-03-30 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
改变函数形参的值不影响实参,交换x和y的值对p和q没有影响。
追问
嘿嘿,麻烦能具体分析一下题目嘛~
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式