瓜牛牛 发表于 2021-10-15 16:52:43

数组长度问题求教

第六问这个长度该怎么判断还有这里后面的斜杠代表啥含义呢

人造人 发表于 2021-10-15 17:04:34

数组 a 的长度是 12,没有问题
这类问题你写一写代码就知道了
你说选项里面没有 12 ?
我问你,这个字母 a 的前面有没有空格?
很明显有个空格,但是前面的 引号是中文的,所以那不是空格
同样 1 的前面 \ 的 前面都不是空格
那么 12 - 3,选 d
如果是我,我不选 a b c d,我直接在选项的位置写一个 12,看看阅卷老师有什么话说

#include <stdio.h>

int main(void) {
    char a[] = " ab' 1' \\\1278";
    printf("a: %lu\n", sizeof(a));
    return 0;
}


a: 12

人造人 发表于 2021-10-15 17:05:10

jhq999 发表于 2021-10-15 17:05:32

本帖最后由 jhq999 于 2021-10-15 17:13 编辑

9个,字符串长度是8+'\0'就是9,字符串最后的字符是'8',如果有空格就当我没说{:5_107:}

人造人 发表于 2021-10-15 17:06:01



#include <stdio.h>

int main(void) {
    char a[] = "ab'1'\\\1278";
    printf("a: %lu\n", sizeof(a));
    return 0;
}

人造人 发表于 2021-10-15 17:08:13

或者写一个 代码无法通过编译 也行
^_^

傻眼貓咪 发表于 2021-10-15 17:10:36

本帖最后由 傻眼貓咪 于 2021-10-15 17:17 编辑

长度:9

索引位置 0 1 2 3 4 5 6 7 8
值 a b ' 1 ' \ W 8 NULL

人造人 发表于 2021-10-15 17:11:02

傻眼貓咪 发表于 2021-10-15 17:16:05

我的理解是,C 语言会自动将 \ 后面三位数变成八进制转义,如:

八进制:\127
十进制:87
ASCII编码87:W

抱歉,我太久没有动 C 语言了,我的理解有错吗?

人造人 发表于 2021-10-15 17:17:47

傻眼貓咪 发表于 2021-10-15 17:16
我的理解是,C 语言会自动将 \ 后面三位数变成八进制转义,如:

八进制:\127


没有

傻眼貓咪 发表于 2021-10-15 17:18:47

7楼,刚才我打错字,前面还有一个 a (已修改)

瓜牛牛 发表于 2021-10-15 19:58:59

傻眼貓咪 发表于 2021-10-15 17:10
长度:9

谢谢大佬{:5_109:}

瓜牛牛 发表于 2021-10-15 19:59:36

人造人 发表于 2021-10-15 17:11


谢谢大佬{:5_109:}

wyz20010429 发表于 2021-10-16 22:40:31

本帖最后由 wyz20010429 于 2021-10-16 22:46 编辑

0x00F8F7A020 61 62 27
0x00F8F7A420 31 27 20
0x00F8F7A85c 57 38 00
我调试了一下,确实是12个字节,发不了图片,只能这样复制粘粘了

wyz20010429 发表于 2021-10-16 22:59:56

直接那这张图怼老师,有图有真相,理论有个jb用{:10_279:}
页: [1]
查看完整版本: 数组长度问题求教