printf("%d%16s%16f%16f",no[i], name[i], as[i], mpat[i]);双引号后面的逗号“,”,应该为英文标点:","。这个导致编译不通过了,那个warning倒不是重点。写代码的时候建议不要开启中文输入法。关于20行的warning,原因在于,name是char的二维数组,故name+i相当于char*,而no是int*的...
您好,这样的:从数值的角度上来说你说的是对的!但编译器是要检查类型匹配的 a是二维数组首地址,也是第一行的首地址,也是第一个元素的地址 a[0]是第一行的地址,也是第一个元素的地址 a[0][0]是第一个元素 从数值上讲a a[0] 甚至&a &a[0] &a[0][0] 都是相同的,但其表示的意...
int name[20];n = strlen(name);这两条语句有问题,strlen这个函数是用来处理字符串的,而你的name是int型数组,在VC中会error,DEV C会警告。把 int name[20]; 改为 char name[20]; 就可以了
int find_( char (*str)[50] ,int a) //定义成数组指针
p=a[0]才正确!a是二维数组,相当于二维指针 a[0]是第一行的地址,int *p,p是一维指针,只有p=a[0]才是合理的!
出现error: r..测试程序出现了error: return from incompatible pointer type [-Werror] return it->curr->prev; ^程序如下
max=find_largest((int*)p,24);
52. Incompatible type conversion — 不相容的类型转换 53. Incorrect number format — 错误的数据格式 54. Incorrect use of default — Default使用不当 55. Invalid indirection — 无效的间接运算 56. Invalid pointer addition — 指针相加无效 57. Irreducible expression tree — 无法执行的表达式运算 ...
在调用函数的时候传递的是int类型的数据,但那个函数定义的参数类型不是int(比如是结构或者指针或者数组)。include include"stdlib.h"int main(){ int i,j,k;int *q;q=(int*)malloc(sizeof(int));scanf("%d %d %d",&i,&j,&k);if(i>j){ if(i>k)q=i;else q=k;} else q=&j;...
warning: assignment from incompatible pointer type [-Wincompatible-pointer-types] 警告:不兼容的指针类型分配[-Wincompatible-pointer-types] === 我们不要把指针想象的特别神秘!其实指针变量也是一个变量。 它里面放的就是一个地址的编号,地址的编号就是一个8个字节...