[英]Adding and subtracting strings and characters in C
我看到一個問題,它在 C 中有這樣的代碼片段
#include <stdio.h>
int main() {
char s[] = "MANIPAL2022";
printf("%s", s+s[4]-s[3]);
return 0;
}
返回:
2022
我無法理解這里正在做什么以及如何添加顯示這些值的字符。
此外,像WESTHAM2022
一樣長度的字符串什么也沒有返回
我試圖理解這個模式和char s[] = "WESTHAM2022" printf("%s", s+s[5]-s[3]);
編譯器返回了一些垃圾值!)�U
而對於
char s[] = "WESTHAM2022";
printf("%s", s+s[2]-s[3]);
它返回9WESTHAM2022
s+s[4]-s[3]
="MANIPAL2022"+'P'-'I'
="MANIPAL2022"+80-73
="MANIPAL2022"+7
="2022"
最后一步是指針的工作原理。
使用s = "WESTHAM2022"
, s+s[5]-s[3]
= s-19
,指向一個未定義的區域,因此它可以返回任何東西或崩潰
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.