读书人

关于指针的+1操作的有关问题

发布时间: 2013-12-13 13:57:17 作者: rapoo

关于指针的+1操作的问题
程序如下:

#include <stdio.h>
int main(){
char a[2] = {'1','2'};
printf("%p, %p\n", a, a+1);//0028FF1E, 0028FF1F 相差1,这个没问题

int b[2] = {1, 2};
printf("%p, %p\n", b, b+1); //0028FF14, 0028FF18 相差4, 这个也没问题

char *c[2] = {"1111111","22222222222"};
printf("%p, %p\n", c, c+1);//0028FF0C, 0028FF10 相差4,请问怎么解释呢?

return 0;
}


这里是我不理解的:
char *c[2] = {"1111111","22222222222"};
printf("%p, %p\n", c, c+1);//0028FF0C, 0028FF10 相差4,请问怎么解释呢?

[解决办法]

//不管数组多长,这都是相差一个指针的长度的!
char *c[2] = {"1111111","22222222222"};

char *c1 = "1111111";
char *c2 = "22222222222";

读书人网 >C语言

热点推荐