为了账号安全,请及时绑定邮箱和手机立即绑定

printf()引号的问题

例如:printf(”…………“,…………);

         printf("……………",'………‘);双引号后面的单引号什么情况下要用?  双引号后面什么时候需要取地址符?

正在回答

2 回答

首先,你要知道单引号代表什么意思,在c语言中,单引号只代表字符常量,如‘A’,‘B’,而取地址符显而易见,就是取地址的意思。然后,你要知道printf函数的格式非常严格,前后一定要一一对应,否则就算编译通过也会有安全性问题。如果在双引号中有%c的解释,后面则一定要跟可以被解释字符变量或字符常量,像这样:

printf(“%c”,'A');

或者printf("%c",a);     其中a为之前定义的char型数据。

对于取地址类似,%p可以输出地址,所以当双引号中有%p时,后面一定要有被%p解释的项,如:

printf("%p",&a);               其中a为非指针类型的数据

或者 printf("%p",p);             其中p为指针类型。

这样说明白了吗?

0 回复 有任何疑惑可以回复我~
#1

qq_朱卫东_0 提问者

非常感谢!
2015-11-18 回复 有任何疑惑可以回复我~
#2

qq_朱卫东_0 提问者

1:​printf(“%d”,'A');如果是这样的话,输出结果就是A对应的ASCII码65? 2:printf(“%c”,'A');如果A没有单引号,那么在输出之前必须先定义?
2015-11-18 回复 有任何疑惑可以回复我~

你所说的两条都是对的,char 和int 型可以任意被 %c 和 %d 解释,解释结果对应各自的ASCII码 和 char 数据,但是在使用时要小心,别出错。另外,初学者容易搞不清楚字符常量和字符型变量的不同,如‘a’和 a,或者‘0’和 0 ,这要在代码中多去体会,凡是被单引号引起来的,都是指ASCII码表中的字符,但如果是a,就是一个我们定义的标识符,计算机看来,a 和 b 和a1,b1没有什么两样 ,这都要我们定义的。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926207    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

printf()引号的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信