gpt4 book ai didi

c - 在 c 中放置字符串(ascii 值)时切换大小写操作

转载 作者:太空宇宙 更新时间:2023-11-04 05:36:43 25 4
gpt4 key购买 nike

#include<stdio.h>
void main() {
switch(*(1+"AB" "CD"+1)){
case 'A':printf("Pulp Fiction");
break;
case 'B':printf("12 Angry Man");
break;
case 'C':printf("Casabance");
break;
case 'D':printf("Blood Diamond");
}
}

我的疑问是在 switch 语句中,为什么它只取字符串中的第一个字母 ascii 值 ("AB" "CD")? (这里它采用 'A' ascii 值,然后是 65+1+1 因此它是 67 'C 的 ascii 值'。里面正在进行什么操作?

谁能解释一下这个开关盒。谢谢

最佳答案

这段代码没有任何意义,因为 switch 表达式是常量。

*(1+"AB" "CD"+1)

首先通过连接任何相邻字符串文字的翻译步骤,所以它变成

*(1 + "ABCD" + 1)

相当于

*("ABCD" + 2)

在此上下文中,字符串文字被评估为指向其第一个元素的 char * 指针。现在您将该指针递增 2,因此它指向第 3 个字母,即 C,然后由取消引用获取。

关于c - 在 c 中放置字符串(ascii 值)时切换大小写操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33081688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com