黑马程序员技术交流社区
标题:
数组和指针
[打印本页]
作者:
微尘•逐梦
时间:
2014-4-20 11:30
标题:
数组和指针
本帖最后由 微尘•逐梦 于 2014-4-21 10:43 编辑
我写了以下代码打印字符串数组,打印结果都是one, printf("%s\n",&str)这行代码我无法理解,希望有人能帮忙解释一下。
#include <stdio.h>
int main()
{
char str[] = "one";
printf("%s\n",str);
printf("%s\n",&str);
return 0;
}
复制代码
打印结果
one
one
复制代码
作者:
星河鹭起
时间:
2014-4-20 11:50
本帖最后由 星河鹭起 于 2014-4-20 11:53 编辑
指针变量使用&运算后得到的是指针变量的地址,而数组名相当于一个指针、
所以C语言中的规定是取数组地址的结果是:仍然是其本身。
既 &array 的值和 array一样。
注意:值是一样,类型是不一样的。
所以&str相当于指针的指针,指向数组名,而数组名的首地址就是o的地址,因此&str指向的首地址也是o,最后输出的结构就都是one了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2