社区
C语言
帖子详情
int *p=5为什么不行?char *s="se"却可以?
wgf42422
2009-12-20 06:51:22
如题。。。。。。
...全文
194
17
打赏
收藏
int *p=5为什么不行?char *s="se"却可以?
如题。。。。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
arong1234
2009-12-20
打赏
举报
回复
写程序不是为了编译不报错,而是为了正确性。你这种方法也许能把编译错误弄没了,但是在绝大多数情况下逻辑都会是错误得。
[Quote=引用 13 楼 wxhanshan 的回复:]
int *p=(int *)5
[/Quote]
辛鹤
2009-12-20
打赏
举报
回复
int *p=(int *)5
arong1234
2009-12-20
打赏
举报
回复
这完全就是瞎说,前者失败是因为5不是地址,而后者没有报错是因为"se"本身就是地址。字符串是特殊得,它是以\0结尾得字符数组,因为它是数组,因此它是“地址”兼容得
[Quote=引用 2 楼 jackyjkchen 的回复:]
*p=5是赋值地址,*s = "se"才是赋值内容,会自动分配一个地址
[/Quote]
风吹草低现羊牛
2009-12-20
打赏
举报
回复
楼主,请补基础!
macrojj
2009-12-20
打赏
举报
回复
后者多了开辟空间这一步。
东大坡居士
2009-12-20
打赏
举报
回复
顶五楼~~
lutiesheng
2009-12-20
打赏
举报
回复
一楼正解
小魔菇
2009-12-20
打赏
举报
回复
顶2楼
xuhaihua046
2009-12-20
打赏
举报
回复
二楼正解
z569362161
2009-12-20
打赏
举报
回复
int *p=5 //错误.定义的指针应该指向地址.
//int *p=&a;应该这个样子地,int a=5;
char *s="se"//可以.这是C语言里字符串指针定义方法.
sageking2
2009-12-20
打赏
举报
回复
这样:int *p=(int *)5;
shanguianti
2009-12-20
打赏
举报
回复
1#楼说的对,Int *p=5是直接把地址单元编号为5的地址赋于p,地址编号为5的内存单元一般是系统所占用的,因此这样赋值通常会出错。而char *s=“se”,s将指向字符串的首地址,字符串在定义时系统会自动开辟一段内存空间,这段内存空间不会是系统自己占用的空间,因此第二个赋值不会出错。
jackyjkchen
2009-12-20
打赏
举报
回复
*p=5是赋值地址,*s = "se"才是赋值内容,会自动分配一个地址
diablox0147
2009-12-20
打赏
举报
回复
因为*p=5你直接把指针的值赋予5,也就是说p指向5这个地址
而*s = "se"所做的动作比*p=5多几步,那就是自动在常量区开辟一个空间然后放入"se\0"之后把放这几个东西的地址返回给*s,
所以这2个不同
weinikuaile
2009-12-20
打赏
举报
回复
[Quote=引用 1 楼 diablox0147 的回复:]
因为*p=5你直接把指针的值赋予5,也就是说p指向5这个地址
而*s = "se"所做的动作比*p=5多几步,那就是自动在常量区开辟一个空间然后放入"se\0"之后把放这几个东西的地址返回给*s,
所以这2个不同
[/Quote]
int *p=5;等价于int *p,p=5;
char *s="sa";等价于 char *s,s="sa";
starshift
2009-12-20
打赏
举报
回复
int *p=(int *)5
编译不会报错,能运行起来才怪。
selooloo
2009-12-20
打赏
举报
回复
5 是int 型常量,p 是int *;类型不匹配
自己关于C语言指针的理解
指针和数组区别 指针就像有目录的书,要找到里面的内容,只需要去看目录就知道在哪里了。数组的话 就需要找到对应的一页。 `//对于指针变量的定义 初始化 (1)
int
*p=&b; (1)
int
*p; p=&b #include<>
int
*p = &b;//
int
定义时
int
*p;//定义完了 再用是这样子的 p=&a; 2.特别注意 野指针;
int
*p;
int
a=100; p=&a; *p 指向内容 100; p存放的是 a 的.
C语言入门之自定义结构体数据struct Student {
int
num;
char
name[20];
char
se
x;
int
age; 类型
用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体 例如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等项,是属于同一个学生的,因此组成一个组合数据,如student_1的变量,反映它们之间的内在联系 struct Student {
int
num;
char
name[20];
char
se
x;
int
age; f...
【渝粤题库】陕西师范大学200681C语言程序设计 作业(高起专、高起本)
一、单选题 1.有如下程序段,其执行后的输出结果为( )。 main() {
int
i=8; while(i>1) {–i; pr
int
f(“%d”,i–);} } A. 753 B. 7531 C. 8642 D. 864 2.在下列的数组定义中,哪一个有语法错误( )。 A.
int
a[]={1,2,3,4,5}; B.
int
a[10]={0}; C.
int
a[][]={0,2,4,6,8};
《带你学C带你飞学习笔记》——
SE
26指向指针的指针
知识点回顾: 指向指针的指针 只要你懂得了指针的概念,那么指向指针的指针也就没什么了不起了。 举个栗子: #include <stdio.h>
int
main() {
int
num = 520;
int
*p = #
int
**pp = &p; …… return 0; } 复制代码 上边代码中,p 定义的是指向整型的指针,也就是说指针变量 p 里...
浙大版《C语言程序设计》第四版(何钦铭颜晖) 第9章 结构 课后习题答案
你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解,还可以在线答题。 一、选择题 1.以下定义结构变量的语句中,错误的是( )。 A. struct student {
int
num;
char
name[ 20];} s; B. struct {
int
num;
char
name[ 20] ;} s; C. struct student {
int
num;
char
name[ 20] ;} ; student
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章