我已经读过,当存在'r'前缀时,字符串中包含反斜杠后面的字符没有更改,并且所有反斜杠都保留在字符串中.但是当我创建一个正则表达式对象时:p=re.compile(r'\*(.*?)\*')它匹配'*text*'.我不明白为什么会这样.根据我的印象,它应该匹配'\*text\*'.
我已经读过,使用基址寄存器来跟踪堆栈帧并不是必需的.我不明白编译器是如何实现这一点的,它是否将堆栈帧大小存储在某处并读取它并将其添加到%rsp中?
由于指向数组的指针指向数组的第一个元素(具有相同的地址),我不明白为什么会发生这种情况:
#include <stdio.h>
int main(void) {
char (*t)[] = {"test text"};
printf("%s\n", *t + 1); // prints "est text"
}
Run Code Online (Sandbox Code Playgroud)
另外,为什么打印下面的代码2呢?
#include <stdio.h>
int main(void) {
char (*t)[] = {1, 2, 3, 4, 5};
printf("%d\n", *t + 1); // prints "2"
}
Run Code Online (Sandbox Code Playgroud)