- 我记得C的书上有这么一句话,说:数组名是该数组元素首地址名。这句话,哎!一看就懂,一写就废。马上打开VS编写一小段代码。
#include <stdio.h>
void main()
{
int data[5];
int a,b;
printf("%d\n", data);
printf("%d\n", &data[0]);
//
// a = data;
// printf("%d\n", a);
// b = &data[0];
// printf("%d\n", b);
system("pause");
}
- 其实这两牵扯到两个问题,第一个问题,我打印输出怎么个输出法?用%d还是x%?还是别的什么,第二个问题,&符号怎么放。
- 上面都是正确的程序,我觉得有必要写一段错误程序做示范。
#include <stdio.h>
void main()
{
int data[5];
int a,b;
printf("%d\n", data);
printf("%p\n", &data[0]);
//
// a = data;
// printf("%d\n", a);
// b = &data[0];
// printf("%d\n", b);
system("pause");
}
- 打印输出,打印输出,又是取地址,那就按照输出格式输出地址咯,这么想,想来没错,也不会有问题,但是只要你编译,就给你报错,错误让你根本摸不着头脑。打印输出的%p怎么用的,打印必须是一个指针类型数据,这里我们看到这个数据是数组,数组是一种特殊的指针,但是它不是指针,这一点我们有必要做区分。这一点极为重要,我有必要写一下打印指针的函数以做区分。符号统一就行,可以换成打印%x,只要他们俩个是一样的,否则你还有自己拿计算机进行一遍进制转换。
#include<stdio.h>
int main(void)
{
int *p;
int a=3;
p=&a;
printf("%p ",p);
return 0;
}
到此结束,连更博客,不断一天,断更补齐