例如,
voID main(){ long a = 101010; long *p = &a; long b = p; printf("%lld\n",*(long*)b);}
总是安全吗?
评论:长b = p;发出警告:
Initialization makes integer from pointer without a cast
但是,程序打印101010.
解决方法 标准并不能保证这样的演员总能奏效.要将指针存储在整数类型中,请使用intptr_t(或其unsigned cousin uintptr_t).保证将voID *指针转换为此类型并转换回来,从而产生相同的值.
请注意,这些类型是可选的.
总结以上是内存溢出为你收集整理的c – 指针只是一个整数吗?全部内容,希望文章能够帮你解决c – 指针只是一个整数吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)