同样一个程序,在VC上报错,TC上正常运行。解决思路
同样一个程序,在VC上报错,TC上正常运行。C/C++ code#includestdio.h length(char *p){int n0while(*p!
同样一个程序,在VC上报错,TC上正常运行。
C/C++ code#include<stdio.h> length(char *p){ int n=0; while(*p!='\0') { n++; p++; } return n;}void main(){ char *str[20]; int len; printf("input a string:\n"); scanf("%s",str); len=length(str); printf(" %d",len);}
TC上OK。
VC上错误是:
'length' : cannot convert parameter 1 from 'char *[20]' to 'char *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast。
不懂这是为什么。具体行数是len=length(str);
[解决办法]TC大楷支持2级和指针间的转换吧。。
[解决办法]char str[20]; // 声明一个长度是20的数组,数组里面的元素是字符。str就可以理解成是指向这个数组的首地址的指针
char *str[20]; // 声明一个长度是20的指针数组,数组里面的元素是指针,会指向别的字符串。
[解决办法] 改成 char str[20];
[解决办法][解决办法]char *str[20];//这是声明了长度是指针的改成char str[20];
[解决办法]C/C++ code#include<stdio.h> length(char *p){ int n=0; while(*p!='\0') { n++; p++; } return n;}void main(){ char str[20]; int len; printf("input a string:\n"); scanf("%s",str); len=length(str); printf(" %d",len);}
[解决办法]
楼上的解释都正确,俺来回帖弄个分
[解决办法]
不同类型的不能隐式或可以正确转换,编译器当然提示警告或者错误了;
不同编译器,是警告还是错误不一样
[解决办法]
没用过TC
[解决办法]
char *str[20] 好奇怪的声明。。 去掉指针声明的*试试
[解决办法]