鱼C论坛

 找回密码
 立即注册
查看: 1968|回复: 8

[已解决]指针非常简单的问题

[复制链接]
发表于 2021-3-6 15:30:56 | 显示全部楼层 |阅读模式
5鱼币
QQ截图20210306152921.png
请问这两种写法有什么区别吗
最佳答案
2021-3-6 15:30:57
前者null表示这个指针谁也不指向,于是这个地址值为0(null宏定义就是0)
后者分配了内存,这个指针就有了地址值
#include<stdio.h>
#include<stdlib.h>

int main()
{
        int *p = NULL;
        int *l=(int*)malloc(sizeof(int));
        printf("p:%x\n",p);
        printf("l:%x",l);
        
        return 0;
 }  
p:0
l:9f13e0

最佳答案

查看完整内容

前者null表示这个指针谁也不指向,于是这个地址值为0(null宏定义就是0) 后者分配了内存,这个指针就有了地址值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-6 15:30:57 | 显示全部楼层    本楼为最佳答案   
前者null表示这个指针谁也不指向,于是这个地址值为0(null宏定义就是0)
后者分配了内存,这个指针就有了地址值
#include<stdio.h>
#include<stdlib.h>

int main()
{
        int *p = NULL;
        int *l=(int*)malloc(sizeof(int));
        printf("p:%x\n",p);
        printf("l:%x",l);
        
        return 0;
 }  
p:0
l:9f13e0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-6 16:05:55 | 显示全部楼层
第一种方法中只是定义了一个指针变量,该指针并没有指向一段存储空间,如果要使用还需要进行赋值的
第二种方法中malloc函数则是向计算机申请了一个整型数据的内存空间,它会返回一个指向该段内存空间的指针,然后将该地址赋值给了p,也就是完成了对指针p的赋值工作,我们就可以通过操作p操作这段内存空间了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-6 16:06:31 | 显示全部楼层
int *p只定义了一个指向整型数据单元的指针;
p = (int*)malloc(sizeof(int))定义的指针同时分配了计算机一个整型单元大小的空间,由p指向。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-6 18:45:37 From FishC Mobile | 显示全部楼层
第一个是单纯定义空指针,第二个是在堆上申请一块内存空间,然后用指针指向它
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2021-3-6 19:10:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-6 19:11:05 | 显示全部楼层

评分

参与人数 1荣誉 -5 贡献 -3 收起 理由
歌者文明清理员 -5 -3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-6 19:11:24 | 显示全部楼层

评分

参与人数 1荣誉 -5 贡献 -3 收起 理由
歌者文明清理员 -5 -3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-6 19:11:37 | 显示全部楼层

评分

参与人数 1荣誉 -5 贡献 -3 收起 理由
歌者文明清理员 -5 -3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 11:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表