为什么第一个是char * namedb
而第二个是char name[100];
strcmp的使用方法不是strcmp(const char *s1,const char * s2);
按照strcmp的使用方法两个不是都是应该是指针类型的吗?求各位帮忙解答一下,谢谢。
首先,char* namedb[ ]是一个指针数组,即存放指针的数组,他的每一个数组元素都是char的指针,注意到调用strcmp函数是第一个实参是namedb[i],即namede的第i个元素,就是一个char的指针,这与strcmp函数的形参是一样的。
其次,char name[100]是一个数组,数组名就是首元素地址(除了&数组名 与 sizeof(数组名)之外),即char的指针,注意到调用strcmp函数是第一而个实参是name(数组名),就是char的指针,这与strcmp函数的形参也是一样的。
strcmp()内写的是地址,指针指向的就是一个地址,数组的数组名就是数组第一个元素的地址