关于C语言printf中"ACEGIK"[3]-1语法含义的技术咨询
代码中
"ACEGIK"[3]-1 的含义解析 - 字符串字面量的本质:在C语言中,
"ACEGIK"这类字符串字面量会被编译器当作以\0结尾的char类型数组,等效于手动定义的char temp[] = {'A','C','E','G','I','K','\0'}。 - 下标访问指定字符:
[3]是数组的下标运算符,C语言数组下标从0开始计数。所以"ACEGIK"[3]会取出数组中第4个元素:下标0对应'A'、1对应'C'、2对应'E'、3对应'G',也就是字符'G'。 - ASCII码的数值运算:C语言里字符参与数值运算时,会自动使用其对应的ASCII码值。
'G'的ASCII码是71,执行-1操作后得到70,而70对应的ASCII字符正是'F',这就是代码输出F的原因。
内容的提问来源于stack exchange,提问作者Ady Alex
相关产品推荐
相关产品推荐

