问题描述
解决方案
解决方案二:
两个程序都不会修改s,这个你只要加点输出就知道了
#include <stdio.h>
int k = 7;
void f(int ** s)
{
int * t = &k;
s = &t;
*s = &k;
printf("%d,%d,%d,", k, *t, **s);
}
int main()
{
int i = 3, *p = &i, **r = &p;
printf("r before %d
", r);
printf("%d,%d,%d
", i, *p, **r);
f(r);
printf("r after %d
", r);
printf("%d,%d,%d
", i, *p, **r);
}
解决方案三:
*p = &i, **r = &p; //改变**r会改变i,改变*r会改变p
s = &t; //这里把s指向另一个指针,再修改s的内容就不会影响到实际参数r了。
解决方案四:
不明白在main中r怎么前后都没变,在f中明明有s=&t;的,改变了r的指向啊!
解决方案五:
awk 将结果输出到不同文件
Action输出不同视图的方法(根据结果跳转到不同页面)
根据用户的选择输出不同的结果--函数指针的使用
解决方案七:
第一个改变了s的值,其已经指向了其他地方,,第二个则未改变
时间: 2024-12-03 02:53:21