
请教大家几道C语言的问题
1、解释下面三个变量的const含义char*constp;charconst*p;constchar*p;2.unsignedchar*p1;unsignedlong*...
1、解释下面三个变量的const含义
char * const p;
char const * p;
const char *p;
2.unsigned char *p1;
unsigned long *p2;
p1=(unsigned char *)0x801000;
p2=(unsigned long *)0x810000;
请问p1+5=
p2+5=
3. void foo(int b[][3])
{ ++b;
b[1][1]=9;
}
main()
{ inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};
foo(a);
printf("%d",a[2][1]);}
请问输出多少?麻烦高手做一下 啊,简单一说为什么?谢谢啦 展开
char * const p;
char const * p;
const char *p;
2.unsigned char *p1;
unsigned long *p2;
p1=(unsigned char *)0x801000;
p2=(unsigned long *)0x810000;
请问p1+5=
p2+5=
3. void foo(int b[][3])
{ ++b;
b[1][1]=9;
}
main()
{ inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};
foo(a);
printf("%d",a[2][1]);}
请问输出多少?麻烦高手做一下 啊,简单一说为什么?谢谢啦 展开
展开全部
1、const 你看const在谁的前面,谁就不能改。
char * const p; p是常量,不能改这个指针p,也就是之后不能对p赋值。
char const * p; *不能改,就是p指向的char变量不能改。const char a; p=&a; a不能改。
const char *p; 同上
2、指针加1,就是指针加上 sizeof(指针指向的类型);char的指针+5就是加上5个char的位置0x801005。
long的指针+5就是加上5个long的位置0x801020。
3、输出9.
char * const p; p是常量,不能改这个指针p,也就是之后不能对p赋值。
char const * p; *不能改,就是p指向的char变量不能改。const char a; p=&a; a不能改。
const char *p; 同上
2、指针加1,就是指针加上 sizeof(指针指向的类型);char的指针+5就是加上5个char的位置0x801005。
long的指针+5就是加上5个long的位置0x801020。
3、输出9.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询