首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

int *p=10和int *p = (int *)10有什么区别?

在C语言中,int *p=10int *p = (int *)10这两种写法在语法上都是不正确的,因为指针变量应该被赋予一个地址值,而不是一个整数值。不过,为了回答你的问题,我们可以从概念上理解这两种写法的区别。

int *p=10

这种写法试图将一个整数值10赋给一个指针变量p。这在C语言中是不合法的,因为指针应该存储内存地址,而不是具体的数值。如果编译器没有报错并生成了可执行文件,这通常意味着编译器进行了隐式类型转换,但这是一种未定义行为(Undefined Behavior),可能导致程序崩溃或其他不可预测的结果。

int *p = (int *)10

这种写法试图将整数值10强制转换为指向int类型的指针,并赋给指针变量p。虽然这种写法在语法上是合法的,但它同样是一种未定义行为。将一个整数值强制转换为指针类型,并不意味着该指针指向有效的内存地址。访问或操作这个指针指向的内存可能会导致程序崩溃或其他不可预测的结果。

正确的做法

如果你想让指针变量p指向一个特定的内存地址,应该这样做:

代码语言:txt
复制
int *p = (int *)malloc(sizeof(int));

这段代码使用malloc函数分配了一个int类型大小的内存,并将返回的地址赋给指针变量p。这样,p就指向了一个有效的内存地址,可以安全地进行读写操作。

总结

  • int *p=10int *p = (int *)10都是不合法的写法,会导致未定义行为。
  • 指针变量应该被赋予一个有效的内存地址,而不是整数值。
  • 使用malloc等内存分配函数来正确地分配和初始化指针变量。

参考链接

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • MySql中int(10)与int(11)什么区别吗?

    0 1 引言 依稀还记得有次面试,面试官问我int(10)与int(11)什么区别,当时觉得就是长度的区别吧!面试官最后也没有给反馈,我也就以为自己答对了。...直到一次个同学又跟我谈起这个事,才去查了以下,发现事情并没有哪么简单... ......int(10)也可以代表 2147483647 这个值int(11)也可以代表。 要查看出不同效果记得在创建类型的时候加 zerofill这个值,表示用 0 填充,否则看不出效果的。...所有整数类型可以一个可选(非标准)属性 UNSIGNED。当你想要在列内只允许非负数该列需要较大的上限数值范围时可以使用无符号值。...2147483647(符号型)4294967295(无符号型)。

    4.3K30

    int(1) int(10) 什么区别?资深开发竟然都理解错了!

    点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 文章来源:https://sourl.cn/ZVQP6t 困 惑 最近遇到个问题,个表的要加个user_id字段,user_id...领导看到我的sql工单,于是说:这int(1)怕是不够用吧,接下来是一通解释。 其实这不是我第一次遇到这样的问题了,其中不乏工作5年以上的老司机。...包括我经常在也看到同事也一直使用int(10),感觉用了int(1),字段的上限就被限制,真实情况肯定不是这样。...后面的数字,不影响int本身支持的大小,int(1)、int(2)...int(10)没什么区别。...: 4  Duplicates: 0  Warnings: 0 分别插入1、10、100、1000 4条数据,然后我们来查询下: mysql> select * from user

    43820

    你知道 int(1) int(10) 的区别吗?

    困惑 最近遇到个问题,个表的要加个user_id字段,user_id字段可能很大,于是我提mysql工单alter table xxx ADD user_id int(1)。...领导看到我的sql工单,于是说:这int(1)怕是不够用吧,接下来是一通解释。 其实这不是我第一次遇到这样的问题了,其中不乏工作5年以上的老司机。...包括我经常在也看到同事也一直使用int(10),感觉用了int(1),字段的上限就被限制,真实情况肯定不是这样。...后面的数字,不影响int本身支持的大小,int(1)、int(2)...int(10)没什么区别。...10年前毕业加入宇宙行,工资不高、也不算太忙,业余坚持研究技术做自己想做的东西。4年后离开国企,加入永辉互联网板块的创业团队,从开发、到架构、到合伙人。

    48710

    intInteger什么区别

    Java虽然号称是面向对象的语言,但是原始数据类型仍然是重要的组成元素,所以在面试中,经常考察原始数据类型包装类等Java语言特性。今天我要问你的问题是,intInteger什么区别?...Integer是int对应的包装类,它有一个int类型的字段存储数据,并且提供了基本操作,比如数学运算、int字符串之间转换等。...谈到这里,就可以非常自然地扩展到自动装箱、自动拆箱机制,进而考察封装类的一些设计实践。坦白说,理解基本原理用法已经足够日常工作需求了,但是要落实到具体场景,还是很多问题需要仔细思考才能确定。...Integer integer = 1;int unboxing = integer ++; intInteger什么区别?...原则上,建议避免无意中的装箱、拆箱行为,尤其是在性能敏感的场合,创建10万个Java对象10万个整数的开销可不是一个数量级的,不管是内存使用还是处理速度,光是对象头的空间占用就已经是数量级的差距了。

    4K20

    Java intInteger什么区别

    Integerint的比较 2.1 通过new Integer生成的变量比较 由于Integer变量实际上是对一个Integer对象的引用,所以两个通过new生成的Integer变量永远是不相等的(...int 生成的变量比较 Integer变量int变量比较时,只要两个变量的值相等,则结果为true(因为包装类Integer基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个...非new生成的Integer变量new Integer()生成的变量比较 非new生成的Integer变量new Integer()生成的变量比较时,结果为false。...进行比较时,如果两个变量的值在区间-128到127之间,则比较结果为true,如果两个变量的值不在此区间,则比较结果为false 原因请参考https://www.cnblogs.com/joshua317/p/...原则上,建议避免无意中的装箱、拆箱行为,尤其是在性能敏感的场合,创建10万个Java对象10万个整数的开销可不是一个数量级的。当然请注意,只有确定你现在所处的场合是性能敏感的,才需要考虑上述问题。

    72520

    int *p定义一个名叫*p的变量,这样理解正确么?

    故事,你有酒么? 简单介绍一下指针:由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化地称为“指针。”意思是通过它能找到以它为地址的内存单元。...一般形式 类型名 *指针变量名; 大部分人初学C语言的时候遇到:int p,则理解为定义了一个int类型的变量p。...因此到指针的时候,很容易也理解:int *p,是一个int类型的*p变量,这种说法实际上是错误的。...int *p,其中p只是变量的名字,int *表示p变量存放的是int类型变量的地址,而不是一个int类型的*p变量。 指针就是一个地址,地址就是一个指针。...还有一点需要注意,指针指针变量是两个不同的概念,我们平时习惯性说的指针,实际上是指针变量,指针只是一个地址,没有其他含义。 建议初学者学习的时候,直接说清楚学的是指针变量还是指针,避免说多混淆概念。

    1.1K3129

    经典面试题-Java中,intInteger什么区别

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接本声明。...Integer是java为int提供的封装类。...int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试考试成绩为0的区别,则只能使用Integer...在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字符串,而int默认的默认值为0, 所以用el表达式在文本框中显示时,结果为0,所以,int不适合作为web层的表单数据的类型...另外,Integer提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数,Integer中还定义了表示整数的最大值最小值的常量

    65120

    面试官:intInteger什么区别?为什么要有包装类?

    PS:Java 10 了局部变量类型推导,可以使用 var 来替代某个具体的数据类型,但在字节码阶段,Java 的变量仍有着明确的数据类型,且局部变量类型推导有着很多限制不完善之处,也不是目前主流的应用版本...回到主题,要理解 int Integer 的区别,要先从 Java 的基础数据类型说起。...基本数据类型 在 Java 中,一共有 8 种基本类型(primitive type),其中有 4 种整型、2 种浮点类型、1 种用于表示 Unicode 编码的字符类型 char 1 种用于表示真假值的...Boolean int Integer 的区别 int Integer的区别主要体现在以下几个方面: 数据类型不同:int 是基础数据类型,而 Integer 是包装数据类型; 默认值不同:...int 的默认值是 0,而 Integer 的默认值是 null; 内存中存储的方式不同:int 在内存中直接存储的是数据值,而 Integer 实际存储的是对象引用,当 new 一个 Integer

    1.4K10

    “云”技术P2P技术什么区别

    云的概念就是服务器在一个云里,很多服务器给你提供了某种服务。基于此意义,p2p就是一种云服务。 P2P如果用来做传输分发,比如用BT部署自己的分发系统,这种就可以视为云分发。...因为p2p背后也是支持很多服务器提供数据,属于在一堆服务器云对外提供数据。而且,很多云服务,其实背后都有p2p技术的身影。 如果p2p用来做分布式计算,那更是云技术的一个大的分支。...P2p里面的机器,都是云里的节点,所以p2p技术严格来说,就是云技术。...透过这项技术,网络服务提供者可以在数秒之内,达成处理数以千万计甚至亿计的信息,达到“超级计算机”同样强大效能的网络服务。...P2PP2P是英文Peer-to-Peer(对等)的简称,又被称为“点对点”。“对等”技术,是一种网络新技术,依赖网络中参与者的计算能力带宽,而不是把依赖都聚集在较少的几台服务器上。

    2.4K40

    数据类型(int char varchar datetime text)的意思;请问 varchar char什么区别

    Int    整数 char    定长字符 varchar    变长字符 datetime    日期时间型 text    文本型 varchar与char的区别: 1、char是固定长度的字符类型...Varchar是可变长度的字符类型,内容多大就占用多大的空间,能有效节省空间。 2、由于varchar类型是可变的,所以在数据长度改变的时,服务器要进行额外的操作,所以效率比char类型低。...例如用CHAR(1)来存储只有YN的值,如果采用单字节字符集只需要一个字节,但是VARCHAR(1)却需要两个字节,因为还有一个记录长度的额外字节。...如果为了考虑冗余,可以留10%左右的字符长度。千万不能认为VARCHAR是根据实际长度来分配存储空间,而随意的分配长度,或者说干脆使用最大的字符长度。

    2.1K10
    领券