
c语言里:char a[5],*p=a,这里a是一个字符,还是首地址,为什么?
4个回答
展开全部
首地址,指针只能存地址,a是数组a[5]的数组名,即数组的首地址
追问
那就是把 a的地址给p对吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char a[5];
char *p = a // 相当于 char *p = &a[0],区别只是两种不同的写法
char *p = a // 相当于 char *p = &a[0],区别只是两种不同的写法
更多追问追答
追问
那就是把 a的地址给p,p是指针变量,那么p='abcd'对吗?
追答
变量a值字符数组(字符串就是字符数组),char *p=a就相当与指向数组a的首地址
char类型的指针,只能指向一个char字符的变量,实质上是指向一个字符变量的地址(就是字符数组a的一个元素,数组a的每个元素相当于是一个char类型的变量)
由于数组的每个变量(元素)之间的存储地址是连续的,
所以可以通过p = p+1;语句让指针指向下一个变量(元素)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首地址,
char a[5],
这样声明就指明a 是首地址,字符的话应该写 'a'
char a[5],
这样声明就指明a 是首地址,字符的话应该写 'a'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |