#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[])
{
//定义指针
int c = 4;
int *p = &c;
char stu[15] = "hello world";
char *s = stu;//定义一个指向数组stu的指针s;
/*
1.指针指向数组实际上是指向数组的首地址;
2.数组名用在表达式中的含义是数组的首地址
3.在表达式当中,数组名使用取地址符号,代表数组的地址;
数组的地址就是,第一个数组的地址,&数组名地址
*/
printf("1.stu[0] is %p\n",&stu[0]);
printf("2.&stu is %p\n",&stu);
printf("8. int *p: %p\n",s);//地址,首地值
printf("8. int *p: %p\n",&s);//
// printf("\n");
// printf("3.%s\n",s); //s指向数组,访问数组从首地址开始,
// printf("4.%s\n",stu);//stu,在表达式中,代表数组的首地址,输出所有元素
// printf("\n");
//printf("5.%c\n",stu[0]);//stu中第一个元素
printf("6.指针的首地址元素%c\n",s[0]);//指针的首地址的元素 h
printf("7.指针的 9地址元素%c\n",s[9] );//第10个
printf("\n");
int b;
printf("8.int *p: %p\n",p);
printf("9.int *p: %d\n",*p);
printf("10.int b: %p\n",&b);
return 0;
}
```c
#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[])
{
//定义指针
int c = 4;
int *p = &c;
char stu[15] = "hello world";
char *s = stu;//定义一个指向数组stu的指针s;
/*
1.指针指向数组实际上是指向数组的首地址;
2.数组名用在表达式中的含义是数组的首地址
3.在表达式当中,数组名使用取地址符号,代表数组的地址;
数组的地址就是,第一个数组的地址,&数组名地址
*/
printf("1.stu[0] is %p\n",&stu[0]);
printf("2.&stu is %p\n",&stu);
printf("8. int *p: %p\n",s);//地址,首地值
printf("8. int *p: %p\n",&s);//
// printf("\n");
// printf("3.%s\n",s); //s指向数组,访问数组从首地址开始,
// printf("4.%s\n",stu);//stu,在表达式中,代表数组的首地址,输出所有元素
// printf("\n");
//printf("5.%c\n",stu[0]);//stu中第一个元素
printf("6.指针的首地址元素%c\n",s[0]);//指针的首地址的元素 h
printf("7.指针的 9地址元素%c\n",s[9] );//第10个
printf("\n");
int b;
printf("8.int *p: %p\n",p);
printf("9.int *p: %d\n",*p);
printf("10.int b: %p\n",&b);
return 0;
}