printf()引号的问题
例如:printf(”…………“,…………);
printf("……………",'………‘);双引号后面的单引号什么情况下要用? 双引号后面什么时候需要取地址符?
例如:printf(”…………“,…………);
printf("……………",'………‘);双引号后面的单引号什么情况下要用? 双引号后面什么时候需要取地址符?
2015-11-18
首先,你要知道单引号代表什么意思,在c语言中,单引号只代表字符常量,如‘A’,‘B’,而取地址符显而易见,就是取地址的意思。然后,你要知道printf函数的格式非常严格,前后一定要一一对应,否则就算编译通过也会有安全性问题。如果在双引号中有%c的解释,后面则一定要跟可以被解释字符变量或字符常量,像这样:
printf(“%c”,'A');
或者printf("%c",a); 其中a为之前定义的char型数据。
对于取地址类似,%p可以输出地址,所以当双引号中有%p时,后面一定要有被%p解释的项,如:
printf("%p",&a); 其中a为非指针类型的数据
或者 printf("%p",p); 其中p为指针类型。
这样说明白了吗?
举报