问答详情
源自:5-5 函数的返回值

printf()引号的问题

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

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

提问者:qq_朱卫东_0 2015-11-18 14:50

个回答

  • denmushi
    2015-11-18 15:19:56
    已采纳

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

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

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

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

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

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

    这样说明白了吗?

  • denmushi
    2015-11-18 15:45:45

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