这段程序输出结果为什么是 |
- C/C++ code
#include<stdio.h>void main(){ char a[]={'a','b','c','d'}; char (*p)[3]=a; printf("%c",*p);}这段程序输出结果为什么是 |
[解决办法]
敢问楼主用的什么编译器???为什么我的VS2008不能通过编译??
[解决办法]
编译出错~~
[解决办法]
没什么意义
[解决办法]
看下数组指针吧
printf("%c %c %c %c",*p,p[0],a,&a[0]);
另外应该是
char a[1][4]={'a','b','c','d'};
char (*p)[4]=a;
[解决办法]
改为这样 printf("%c",*p[0]);
char (*p)[3]=a;说明p是一个指针 指向一个数组
"%c",*p 等同 "%c", a 没有意思
[解决办法]
不知道LZ想干嘛
[解决办法]
[解决办法]
p是一个指针,指向一个含有3个char元素的数组,那么p 应该等于 &a;
[解决办法]
类型都不匹配,肯定会不通过的。VC6下可能通过,因为其不标准。
[解决办法]
- C/C++ code
#include<stdio.h>void main(){ char a[]={'a','b','c','d'}; char (*p)[3]=a; //这个写法好奇怪,类型不对吧,试着改成下面的试试 printf("%c",*p);}