关于函数返回指针
如果在函数中定义了一个指向局部变量的指针,那么在函数返回后:是不是 指针指向的地址没有变化,而是指针指向的地址里面的内容被销毁了? 比如: int *f(){ int *p; p= &5; return p; } 假设给p分配的地址是Oxddf7,那么函数返回后,p的值还是Oxddf7吗?
你理解的有误 p是指针,给他分配的地址是Oxddf7,那么p就代表Oxddf7,在Oxddf7中保存的就是指向的数据的地址,返回给调用函数的结果是Oxddf7中保存的数据,即p指向数据的地址,而不是Oxddf7;函数返回后,p就会被清理,也无效了,它的值就更无从说起了。 另外,p= &5;是错误的,不能对常量取地址,因此系统中根本不会给整型常量分配地址
int *f()定义的f为指针函数,也就是说该函数返回的是一个int类型的地址值 int *a; a=f();假如你的p是指向0xddf7的,那么得到的a就是指向地址为 0xddf7的指针。 不过你的p= &5;是错误的,不能对常量取地址 int (*f)(int);声明f是一个指向int f()指针; 定义了函数int func(int x){return x} f=func; 那么f(5)和func(5)的值相等,均为5; 也就是说指针f指向了函数func.
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>