这个函数如何工作“abcdefghijklmnopqrstuvwxyz”[rand()%26]?

leo*_*eon 2 c random generate

生成字母表中的随机字母

"abcdefghijklmnopqrstuvwxyz" [rand()%26]
Run Code Online (Sandbox Code Playgroud)

这是如何运作的?

Vla*_*cow 8

其实这个表达

"abcdefghijklmnopqrstuvwxyz" [rand()%26]
Run Code Online (Sandbox Code Playgroud)

相当于

char *p = "abcdefghijklmnopqrstuvwxyz";

p[rand()%26]
Run Code Online (Sandbox Code Playgroud)

即使用下标运算符从字符串文字中选择随机字符。

原始表达式中使用的字符串文字被隐式转换为指向其第一个元素的指针。

该表达式rand()%26在范围内产生一个随机值(余数)[0, 25]