2

我想在 C 中获取字符串 (char[]) 的第一个字符。

unsigned int N;
unsigned int F;
unsigned int M;
char C;
int main (int argc, char *argv[]){
    if (argc!=5){
        printf("Invalid number of arguments! (5 expected)\n");
        exit(-1);
    }
    N = atoi(argv [1]);
    F = atoi(argv [2]);
    M = atoi(argv [3]);
    C = (char) argv[4]; //this way gives a wrong char value to variable C

上面的代码给了我警告:从不同大小的整数转换为指针。

编辑:正如评论中所指出的,argv 是 char *[],而不是 char[]。

4

2 回答 2

3

有两种主要方法可以做到这一点。第一种是简单地取消引用指针。

C = *argv[4];

您也可以通过数组下标来执行此操作,它会在取消引用之前隐式地向指针添加偏移量。

一定要先检查是否为null,以此类推。通常,在处理指针时需要小心。

于 2013-03-08T19:11:12.077 回答
1

argv[4]是一个char数组。您需要取消引用该数组以从中获取单个元素

C = *(argv[4]);
于 2013-03-08T19:11:14.293 回答