c语言函数中传地址跟传指针有什么不同?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

c语言函数中传地址跟传指针有什么不同?

2016-06-06 09:51:26 1857 4

c语言函数中传地址跟传指针有什么不同?

我定义一个指针把指针变量作为参数 和 定义变量把变量的地址作为参数有什么不同?

例如: 网上找到的:

函数定义:
int queue_init(queue *Q){

Q->front = NULL;
Q->rear = NULL;

}
函数调用:
...
queue Q;
...
queue_init(&Q);
...
错误函数调用:
...
queue *Q;
...
queue_init(Q);
...
为什么后者是错误的调用?

取消 提交回答
全部回答(4)
  • 一生有你llx
    2019-07-17 19:27:41

    queue *Q没有分配具体的内存

    0 0
  • nothingfinal
    2019-07-17 19:27:41

    queue *Q没有分配具体的内存

    0 0
  • xumaojun
    2019-07-17 19:27:41

    queue *Q没有分配具体的内存

    0 0
  • a123456678
    2019-07-17 19:27:41

    C语言中只存在按值传递这个概念。即便是指针,指针的值就是它所指向的地址,本质上,它也是值。
    对于你上面的:

    ...
    queue Q; //这句声明,会让编译器为之分配内存空间
    ...
    queue_init(&Q); //在这个调用中会解引用指针&Q,因此,&Q这个指针必须是合法的。
    ...
    错误函数调用:
    ...
    queue *Q; //声明了一个指向quque结构的指针Q,至于Q指向哪块内存区域,这里并没有指定。
    //此时如果解引用指针Q,那么便是属于非法访问内存。
    ...
    queue_init(Q); //很明显,这里的调用也就是非法的了。
    ...

    0 0
添加回答
相关问答

17

回答

教你如何简单将OSS bucket挂载成为阿里云ECS服务器本地盘

梦丫头 2017-02-17 14:01:12 37982浏览量 回答数 17

5

回答

【阿里云】linux服务器安装nginx配置多个站点两种方法

自娱自乐 2014-03-29 14:53:12 22434浏览量 回答数 5

9

回答

阿里云ECS安装虚拟主机系统DirectAdmin开心版百分百成功的方法

hxs 2014-05-26 20:05:30 34486浏览量 回答数 9

10

回答

AMH5.0安装脚本顺便提醒是收费的每月5元。

是非良人 2014-08-31 15:13:27 20879浏览量 回答数 10

8

回答

阿里云服务器内网传输使用指南

任逍遥 2013-03-22 00:05:42 30736浏览量 回答数 8

3

回答

2020年05月编程排行榜-C语言继2015年,重新成为编程排行榜第一名

huc_逆天 2020-05-06 13:43:42 35541浏览量 回答数 3

4

回答

上传到OSS的文件md5hash值如何获取?!!

asker 2015-08-05 16:52:10 21252浏览量 回答数 4

14

回答

C语言基础 【精品问答合集】

我是管理员 2018-07-13 15:37:00 26673浏览量 回答数 14

10

回答

阿里云centos静默安装oracle

美味的小鱼 2014-08-12 14:23:44 30640浏览量 回答数 10

5

回答

C语言算法 【精品问答合集】

我是管理员 2018-07-13 15:51:28 27067浏览量 回答数 5
+关注
0
文章
14879
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载