(* argv[2] )[2]不是合法的表达式。它试图对指针argv[2]进行解引用,并且取得该指针指向的内存地址再加上2的偏移量。然而,由于缺少括号,这个表达式的含义变得模糊不清。
正确的表达式应该是(* (argv[2] + 2)),它首先对argv[2]进行指针运算,将其指向的内存地址加上2的偏移量,然后再对结果进行解引用,获取该内存地址存储的值。
需要注意的是,这个表达式是否指向指针argv[2]的第一个字符取决于argv[2]的类型。如果argv[2]是一个指向字符串的指针,那么(* (argv[2] + 2))将指向该字符串的第三个字符。如果argv[2]是一个指向其他类型数据的指针,那么(* (argv[2] + 2))将指向该类型数据在内存中的位置加上2的偏移量。
关于指针和指针运算的更多信息,可以参考腾讯云的《C语言指针详解》文档:https://cloud.tencent.com/developer/doc/1101
领取专属 10元无门槛券
手把手带您无忧上云