|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
int main(void)
{
int a=2, b = 3, c = 4;
int *pa = &a,*pb = &b,*pc = &c;
int *num[3] = {pa,pb,pc};
char *str[3] = {"geat","wall","china"};
printf("%p\n",*(num+1)); // 1 输出pb的地址,正确输出
printf("%d\n",**(num+1)); // 2 输出b的值3,正确输出
printf("%s\n",*(str+1)); // 3 输出str[3]的值 wall,真确输出;
printf("%s\n",**(str+1)); // 4 没有输出 且整个程序运行后出错;
return 0;
}
向各位老师请教:num和str为相同的类型,同为指针数组,但是输出的不同的结果;例如:*(num+1)输出的是第1个元素pb的地址,而*(str+1)输出的不是第1个元素"wall”的地址而是wall本身;
changyouren88 发表于 2017-12-18 07:30
不都是地址吗?有什么不同呢?字符串首地址有什么不同?
字符串你不能通过指针索引直接获得整个字符串中的第二个字符的值
|
|