社区
C语言
帖子详情
c和&c的问题
smilewindy
2007-03-15 11:25:29
有定义语句:int b;char c[10]; ,则正确的输入语句是
A)scanf("%d%s",&b,&c);
B)scanf("%d%s",&b,c);
老谭的书上写了A答案是错误的,但是用VC,TC等编译工具运行都没有错误,而且结果都一样,c和&c是一个地址。
为什么?
...全文
375
11
打赏
收藏
c和&c的问题
有定义语句:int b;char c[10]; ,则正确的输入语句是 A)scanf("%d%s",&b,&c); B)scanf("%d%s",&b,c); 老谭的书上写了A答案是错误的,但是用VC,TC等编译工具运行都没有错误,而且结果都一样,c和&c是一个地址。 为什么?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
p_zyh
2007-03-16
打赏
举报
回复
对于char a[10]这样的数组类型
虽然a可以当作指针来用,表示该数组的首地址
但实际上并没有一个存储区域来保存这一地址
所以对a取地址得到的还是数组的首地址
而char* p = a;就实实在在的分配了一段存储空间来保存地址
所以对p取地址就可以得到该存储空间的地址
todototry
2007-03-16
打赏
举报
回复
mark
crazy_liu
2007-03-16
打赏
举报
回复
同上
不过,个人觉得还是规范些好,虽然其他的不一定错
Cnwanglin
2007-03-16
打赏
举报
回复
楼上的非常有才
晨星
2007-03-15
打赏
举报
回复
你可以认为“c”跟“char* p”是同一个级别的,而“&c”跟“char (*p)[10]”是同一个级别的。
是啊,同一个地址对scanf来说效果就没啥区别。
smilewindy
2007-03-15
打赏
举报
回复
&c是什么类型?
既然c和&c是一个地址,那么scanf函数就可以scanf("%s",&c);这么写了?
晨星
2007-03-15
打赏
举报
回复
这个。。。。
c和&c的地址的值是一样的,不同的仅仅是类型。而scanf这种变参函数,本来就不太在乎地址的类型的。
比如,你还可以让它更变态一点:
char c[10];
shrt* p = (short*)c;
scanf("%s", p);
printf("%s\n", c);
答案还可能还是对的。
jiarusun000
2007-03-15
打赏
举报
回复
个人认为,A和B无非就是多了个&吗?错误到不至于,就是多余,既然C是数组的首地址,所以没必要加&.
大爷想要时光机
2007-03-15
打赏
举报
回复
printf("a: %d:%d\n", a, &a);//a[]的首地址:a[]的首地址
printf("p: %d:%d\n", p, &p); //p中的内容(a[]的首地址):指针变量p本身的地址
不知对不对
darkrainbow
2007-03-15
打赏
举报
回复
楼上的就不对了 &p 就是指针p的地址, p是指向a的指针
p 和 &p当然不同 了
smilewindy
2007-03-15
打赏
举报
回复
有这样一个程序
#include <stdio.h>
main(){
char a[] = "12345";
char *p = a;
printf("a: %d:%d\n", a, &a);
printf("p: %d:%d\n", p, &p);
}
我机器上结果是
a: 1245048:1245048
p: 1245048:1245044
后端学习之过滤器和监听器
笔者今天复习了后端的过滤器和监听器方面的内容,下面就让笔者为大家介绍这些方面的内容吧,若有错误,还望大家能批评指正。 过滤器 介绍 Filter 即为过滤,用于在 Servlet 之外对 Request 或者 Response 进行修改。它主要用于对用户请求进行预处理,也可以对 HttpServletResponse 进行后处理。使用 Filter 的完整流程: Filter 对用户请求进行预处理,接着将请求交给 Servlet 进行处理并生成响应,最后 Filter 再对服务器响应进行后处理。在一个
JavaWeb学习——过滤器和监听器
介绍了过滤器的概念、工作原理、生命周期、使用步骤、应用场景、注意事项、使用案例,监听器的概念、分类、使用案例等。
Listener监听器和Filter过滤器学习总结
什么是 Listener 监听器 Listener 监听器它是 JavaWeb 的三大组件之一。JavaWeb 的三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。 Listener 它是 JavaEE 的规范,就是接口 监听器的作用是,监听某种事物的变化。然后通过回调函数,反馈给客户(程序)去做一些相应的处理 ServletContextListener 监听器 ServletContextListener 它可以监听 ServletContext 对象的创建和
过滤器和监听器的学习
过滤器 什么是过滤器 过滤器JavaWeb三大组件之一,过滤器起到了过滤,拦截的作用,过滤请求和响应。servlet是拦截并处理请求,而过滤器只拦截请求并不处理。 过滤器的原理 当浏览器index2.jsp向服务器发送请求时,过滤器会根据web.xml配置的url-pattern匹配到对应的url的请求,如果改过滤器须放行会执行filterChain.doFilter(servletRequest...
【JavaWeb学习】03过滤器和监听器
一、过滤器(Filter) 过滤器是JavaWeb的三大组件之一。 JavaWeb三大组件: Servlet 运行在服务器端处理请求生成响应 过滤器 对所请求的Web资源进行拦截,在请求到达目标资源之前调用过滤器进行一个处理(前置处理),在目标资源访问后也可以调用过滤器进行后置处理 监听器 监听器是用来监听servletContext, session , request 三个域对象的创建,销毁以及属性改变事件,当域对象发生以上事件时,监听器就自动监听到,从而自动执行相关方法
C语言
70,040
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章