c语言指针问题

2024-11-14 02:09:20
推荐回答(5个)
回答(1):

int main (void)
{
char *s1="abc",*s2="wxyz",*s3="ijklm";
char *str1[3]={s1,s2,s3};

printf("str1[0]=%d,&s1=%d\n",str1[0],s1);
printf("str1[1]=%d,&s2=%d\n",str1[1],s2);
printf("str1[2]=%d,&s3=%d\n",str1[2],s3);
return 0;
}

str1[0]的输出结果应与s1的输出结果是一样
如上程序,前后两个应该都用%d输出,都不加&

回答(2):

数组str1[3]中的元素是指针变量,指针变量已赋值,也就是存放的是abc、wxyz、ijklm这些地址,即指针数组里面存放的地址。
而&s1、&s2、&s3是指针变量本身的地址,所以不一样。

回答(3):

#include "stdio.h"
int main (void)
{
char *s1="abc",*s2="wxyz",*s3="ijklm";
char *str1[3]={s1,s2,s3};
printf("str1[0]=%d,&s1=%c\n",str1[0],s1);
printf("str1[1]=%d,&s2=%c\n",str1[1],s2);
printf("str1[2]=%d,&s3=%c\n",str1[2],s3);
return 0;
}

你加了&,输出的是s1的地址,而不是值,所以要去掉,现在一样了,输出的都是值,你运行看看。

回答(4):

顺带问一句,楼主输出那个有什么用啊?

输出的是什么意思哦,看不懂,不像是地址,

回答(5):

重复提问会被删除!

http://zhidao.baidu.com/question/55644125.html