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

d4shman 2013-12-12 06:00:38
程序如下:
#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,请问怎么解释呢?
...全文
206 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
d4shman 2013-12-12
  • 打赏
  • 举报
回复
引用 4 楼 max_min_ 的回复:

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

char *c1 = "1111111";
char *c2 = "22222222222";
一针见血!我懂了版主~谢谢!
d4shman 2013-12-12
  • 打赏
  • 举报
回复
引用 2 楼 baichi4141 的回复:
sizeof(char*)==4
这肯定是没问题的。
max_min_ 2013-12-12
  • 打赏
  • 举报
回复

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

char *c1 = "1111111";
char *c2 = "22222222222";
derekrose 2013-12-12
  • 打赏
  • 举报
回复
指针:32位机器上为4个字节
baichi4141 2013-12-12
  • 打赏
  • 举报
回复
sizeof(char*)==4
d4shman 2013-12-12
  • 打赏
  • 举报
回复
@ max_min_

69,337

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧