c语言指针函数及返回值 c语言指针函数及返回值怎么写

C语言 关于指针函数返回值

struct student *p, *q, *head;

成都创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为皮山企业提供专业的成都做网站、成都网站制作,皮山网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

这里head不就是 struct student 类型的指针么。

C语言指针与返回值

函数A的返回值错误。虽然地址和指针很像,但还是不同的两个东西。而且,一旦出了函数A,返回的地址,也就该被回收,会导致程序出错。是非常危险的行为。

举个例子说明下吧。

int *p=a;

这个,在数值上,p是和a的地址相等的,也就是有p==a。

这时如果a=1;那么你知道*p==1,是真。

但是此时,p存储的是a的地址,p还有自己本身的地址。就好比,你(p)坐在座位上,用手指向另一个座位(a)一样。那个座位就是a的地址,上面坐着谁(1),就是a的值。你本身就是指针了。

所以说,返回值是指针和地址是完全不同的两个概念。所以就是错误的!

B函数为啥正确呢?因为NULL是一种特殊的指针,叫空指针。所以是可以算作正确的。

c语言指针型函数

#includestring.h  // 导入头文件string.h

#includestdio.h   // 导入头文件stdio.h

char *fun(char *t)  // 定义函数, 名称fun, 输入参数为char *, 返回值为char *

{

char *p = t;    // 把t的值赋值给p, 相当于p指向与t相同的字符串

return p + strlen(t) / 2;   // strlen返回值为字符串长度, 然后p位移其一半(向下取整)的距离并返回值

}

int main(int argc, char *argv[])

{

char *str = "abcdefgh"; // str指向字符串“abcdefgh”

str = fun(str);         // str调用fun函数, 参数为str, 并将返回值赋值给str

puts(str);              // 此时str指向e, 输出为“efgh\n”

return 0;

}


名称栏目:c语言指针函数及返回值 c语言指针函数及返回值怎么写
链接地址:http://pwwzsj.com/article/dddhjid.html