C语言,指针和数组区别
char*a[]={'I','','a','m','','h','a','p','p','y'};charb[]={'I','','a','m','','h','a','...
char *a[]={'I',' ','a','m',' ','h','a','p','p','y'};
char b[]={'I',' ','a','m',' ','h','a','p','p','y','\0'};
char c[]={"I am happy"};
char d[]="I am happy";
char *e[]={"I"," ","a","m"," ","h","a","p","p","y"};
char *f[]={"I am happy"};
char *g="I am happy";
printf("%d,%s\n",strlen(a),a);
printf("%d,%s\n",strlen(b),b);
printf("%d,%s\n",strlen(c),c);
printf("%d,%s\n",strlen(d),d);
printf("%d,%s\n",strlen(e),e);
printf("%d,%s\n",strlen(f),f);
printf("%d,%s\n",strlen(g),g);
输出结果是:
1,I
10,I am happy
10,I am happy
10,I am happy
3,竁+
3,糤+
10,I am happy
//**************************
请问,a~g能这么定义吗?每个代表了什么意思? 展开
char b[]={'I',' ','a','m',' ','h','a','p','p','y','\0'};
char c[]={"I am happy"};
char d[]="I am happy";
char *e[]={"I"," ","a","m"," ","h","a","p","p","y"};
char *f[]={"I am happy"};
char *g="I am happy";
printf("%d,%s\n",strlen(a),a);
printf("%d,%s\n",strlen(b),b);
printf("%d,%s\n",strlen(c),c);
printf("%d,%s\n",strlen(d),d);
printf("%d,%s\n",strlen(e),e);
printf("%d,%s\n",strlen(f),f);
printf("%d,%s\n",strlen(g),g);
输出结果是:
1,I
10,I am happy
10,I am happy
10,I am happy
3,竁+
3,糤+
10,I am happy
//**************************
请问,a~g能这么定义吗?每个代表了什么意思? 展开
展开全部
凡是指针都不能这么定义。
例如:*a[]={……};
这是错误的
带有“*”的变量不能赋值,因为该变量内储存的是另外一个变量的地址 。
“*”是指项该变量地址的符号。
你要为指针函数赋值的话只能这样赋:
*P=&a[];
a[]={……};
其中“&”是变量a[]的地址的意思。
例如:*a[]={……};
这是错误的
带有“*”的变量不能赋值,因为该变量内储存的是另外一个变量的地址 。
“*”是指项该变量地址的符号。
你要为指针函数赋值的话只能这样赋:
*P=&a[];
a[]={……};
其中“&”是变量a[]的地址的意思。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char *a[];
这个定义没问题的。。
含义:a 首先是个数组,数组元素是字符指针。。
但是其赋值出了问题。。右边大括号中每个元素是char类型,而数组元素类型是字符指针。。
另外,strlen(a)有问题。。strlen接受一个字符指针参数,a是一个字符指针指针,虽然都是指针,但指向的类型不同。。
同理,第一条printf的第二个输出也是这个问题。。
下面的几条基本都是类型不匹配。。输出结果就奇奇怪怪
这个定义没问题的。。
含义:a 首先是个数组,数组元素是字符指针。。
但是其赋值出了问题。。右边大括号中每个元素是char类型,而数组元素类型是字符指针。。
另外,strlen(a)有问题。。strlen接受一个字符指针参数,a是一个字符指针指针,虽然都是指针,但指向的类型不同。。
同理,第一条printf的第二个输出也是这个问题。。
下面的几条基本都是类型不匹配。。输出结果就奇奇怪怪
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询