潇湘沐

OP需要先知道C语言的datatypes:thetypevoidbasictypesthetypecharsignedintegertypes...unsignedintegertypes...floatingtypesenumeratedtypesderivedtypesarraytypespointertypes...很清晰的可以看见,指针(pointer)和数组(array)两个都是derivedtype,而且是两个不同的类型,但是由于C语言的类型系统太弱了,有很多隐式转化(implicitlycast).此处str就是从arraytypedecay到了pointertype.为什么scanf方法在给其他类别对象赋值的时候一定需要加取地址符?因为scanf的parameter是pointer.更宽泛的说,所有数组在传参时都会decay到指针类型.c++则有了些许变动,可以允许用引用来传递数组,但是已经无法按值传递数组.请问为什么这里的scanf和printf中有无取地址符均能运行?&是取地址符(addressof)但表达式&arr取的不是地址而是指针,不过其中蕴含了地址信息.如果你用&str:#includeintmain(){charstr[80];inti=0;scanf("%s",&str);printf("%s",str);return0;}warning:formatspecifiestype'char'buttheargumenthastype'char()[80]'[-Wformat]这个warning很明显了.既然str能decay到指针,就别在用&了.只有在不能退化成指针的时候,再用&,比如inta;scanf("%d",&a);.延伸阅读:http://tieba.baidu.com/p/3993...https://stackoverflow.com/que...https://stackoverflow.com/que...https://stackoverflow.com/que...https://stackoverflow.com/que...

c语言scanf不用取地址符,关于c中printf和scanf函数是否使用取地址符的疑问相关推荐

  1. R语言拟合ARIMA模型:使用forecast包中的auto.arima函数自动搜索最佳参数组合、模型阶数(p,d,q)、设置seasonal参数指定在模型中是否包含季节信息

    R语言拟合ARIMA模型:使用forecast包中的auto.arima函数自动搜索最佳参数组合.模型阶数(p,d,q).设置seasonal参数指定在模型中是否包含季节信息 目录

  2. python中split的用法取第二个分片_python中split()函数的用法

    函数:split() Python中有split()和os.path.split()两个函数,具体作用如下: split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(li ...

  3. php获取mac_ip地址,如何获取PHP中连接的客户端的MAC和IP地址?

    服务器IP 您可以从$ _SERVER ['SERVER_ADDR']获取服务器IP地址. 服务器MAC地址 对于MAC地址,您可以解析netstat -ie在Linux中的输出,或ipconfig ...

  4. [C语言] 文件操作,解压SZB格式中的一段函数片段;

    fseek( fd, 8192 , SEEK_SET); /* 跳转至数据段 *///开始解压数据:int size,n;char image_name[32]="";for( i ...

  5. C语言再学习 -- printf、scanf占位符

    参看:printf().scanf()用法总结及其格式转换说明符 一.printf() printf()的返回值为输出的字符个数: 例:rv = printf ("hello"); ...

  6. C语言函数名以及取地址的区别和联系

    有时看到如下的代码: /*****************************/ #include <stdio.h> #include <string.h> #inclu ...

  7. C语言对函数取地址,C语言函数名以及取地址的区别和联系

    有时看到如下的代码: /*****************************/ #include #include #include void test() { printf("123 ...

  8. scanf 接收 空格 输入_【C语言】- printf 和scanf 函数详解!

    一.printf函数 这是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>,使用它可以向标准输出设备(比如屏幕)输出数据. 1.用法 1> p ...

  9. C语言scanf输入a3,【C语言】04 printf和scanf函数

    1.printf函数 这是在stdio.h中声明的一个函数,因此使用前必须加入#include ,使用它可以向标准输出设备输出数据 1.用法 1> printf(字符串) printf(&quo ...

  10. c++ scanf读取_使用scanf()读取内存地址并在C中打印其值

    c++ scanf读取 Here, we have to input a valid memory address and print the value stored at memory addre ...

最新文章

  1. 计算机出国读博必读!外国小哥创建最全CS奖学金项目清单
  2. 2009年计算机二级c语言考试真题,2009年3月全国计算机二级C语言考试真题.doc
  3. 2002: [Hnoi2010]Bounce 弹飞绵羊
  4. spring注解方式 idea报could not autowire
  5. python中的计算符号
  6. 【分享】Java软件架构师所要需的东西 (希望对很多迷茫的朋友指个路)
  7. AndroidStudio_Base64图片的解码_编码_要注意的地方---Android原生开发工作笔记223
  8. Customizing AxWebBrowser, make it powerful
  9. db2官方SQLSTATE代码提示
  10. 帆软函数TOIMAGE应用
  11. Exception in thread main java.lang.UnsupportedClassVersionError: Bad version number in .class file
  12. php将一个日期字符串转换成举例来说当前的,PHP将一个日期字符串转换成举例来说当前的天数...
  13. 哈尔滨啤酒集团有限公司盈利能力分析毕业设计
  14. 汇编语言期末复习总结
  15. 【PowerJob】值得你拥有的新一代分布式任务调度与计算框架
  16. 【css】用css的方法来画一个三角形
  17. Unknown module(s) in QT: webenginewidgets原因及解决办法
  18. 511遇见易语言API模块通过进程名获取进程句柄
  19. Java 最常见 200+ 面试题全解析:面试必备(2019)
  20. 【蓝桥杯VIP】试题 历届试题 带分数(满分 Python解法+Java解法)

热门文章

  1. nps内网端口映射,含(p2p配置方法)
  2. JavaScript设计模式 - 适配器模式
  3. mysql超键 候选键_菜鸟学数据库——超键、候选键、主键、外键
  4. Resolution 归结原理
  5. VMware Workstation 15 Player 共享文件夹制作
  6. OpenGL 编程指南 ( 原书第 9 版 ) --- 第二章
  7. js 获得较浅的颜色_了解较少的颜色功能
  8. lbj学习日记02 循环结构(for while)
  9. 计算机cpu架构是什么意思,「电脑小白必备」一分钟快速了解CPU
  10. 逆向知识之CS1.6辅助/外挂专题.1.实现CS1.6主武器副武器无限子弹