PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
[问题] printf 和 引号问题
楼主:
nekosgr93
(
2018-12-30 03:55:04
小弟最近在上CS50刚看完C的两个单元
写作业的时候碰到个问题
为什么当我想print出单一个字符的时候
不能这样写:
printf('a');
编译时会提示 format string is not a string literal
而是应该这样写:
printf("a");
或是这样写:
printf("%c", 'a');
单引号不是代表一个字符吗?
为何printf一个字符的时候不能使用单引号?
孤狗也孤狗不太到答案
不知道是不是有什么细节我有漏掉的?
作者: kaneson (Lance)
2017-01-09 14:49:00
函式可以传多种type参数是后来才发明的,中间有很多演进才到python那样任意传。还有printf本身也是新手最早要接触到而有一定基础才能理解的函式
作者:
steve1012
(steve)
2018-12-30 04:00:00
因为第一个引数要const char* 你传char当然不行孤狗printf 文件写得蛮清楚的...查error message也很多说明...
作者:
poyenc
(发箍)
2018-12-30 10:36:00
没看过 CS50 不过看心得好像很浅.. 你对函式的认知是?
作者:
alan23273850
2018-12-30 14:26:00
printf 只能吃字串,不能吃字符
作者:
tomsawyer
(安安)
2018-12-30 17:56:00
不是传pointer吗(?)
作者:
LPH66
(-6.2598534e+18f)
2018-12-30 20:16:00
建议你去找本 C 语言初学的书从头看C 和 python 有一些语言设计上的不同
作者:
b0920075
(Void)
2018-12-31 11:00:00
稍微看过是能期待懂什么?完整看完好好描述自己的问题,这样别人要讲要教也比较好教
作者:
poyenc
(发箍)
2018-12-31 17:37:00
简单说, 函式收的参数型别是固定的, 如果它吃的是 type*引数就会需要用 & 对 type 变量取址得来, 另外也可以让阵列 decay 而来, string literal 就是 char 阵列 (但隐藏最后的 '\0' 字符, "hello" 阵列长度是 6, 当成字串长则是5, 你要把变量当成指标丢肯定是不行的
作者:
MaxHaru
(懂得放手..才是王道)
2017-01-14 17:00:00
'a'等于0x61, 是一个常数, "a"等于0x61,0x00..
继续阅读
[问题] codeblocks建立专案
baldhawk
[问题] C++输出的值与预想的不一样
Neal121
[问题] Windows libvlc是否有静态库呢?
james999
[问题] 执行exe档后,档案不见了。c++2017
automaton
[问题] 高通hexagon dsp
kakar0to
[问题] Huffman压缩/解压
achicn3
[问题] 二维动态阵列的问题
s9302422
Re: [问题] llvm 有API可以求得PDF吗?
mshockwave
[问题] 询问 C/C++ 程式方面问题
Rjunkai
[问题] 64位元程式使用32位元程式资料
asdfg1597860
Links
booklink
Contact Us: admin [ a t ] ucptt.com