本博客主要内容为 “小甲鱼” 视频课程《带你学C带你飞》【第一季】 学习笔记,文章的主题内容均来自该课程,在这里仅作学习交流。在文章中可能出现一些错误或者不准确的地方,如发现请积极指出,十分感谢。
也欢迎大家一起讨论交流,如果你觉得这篇文章对你有所帮助,记得评论、点赞哦 ~(。・∀・)ノ゙
1. 指针和数组的关系
指针和数组之间的关系虽然十分微妙,但是不可以认为指针就是数组,因为数组名是数组第一个元素的地址,也是数组的首地址。
比如说下面的这段程序
#include <stdio.h>
int main()
{
int a;
int *p = &a;
printf("请输入一个整数:");
scanf("%d", &a);
printf("a = %d\n", a);
printf("请重新输入一个整数:");
scanf("%d", p);
printf("a = %d\n", a);
return 0;
}
我们用整型变量 a 的地址初始化指针变量 p,其中 scanf("%d", &a);
的含义是将输入存放在 &a 这个地址所指向的变量中,所以我们打印输出 a 的值,就是通过 scanf 得到的输入的值。之后我们需要重新输入一个整数,因为 scanf 是将输入的数字保存到某一个地址中,如果不使用 &a ,而是使用 p 来表示地址也是可以的。执行上面这段代码,可以获得如下的结果
请输入一个整数:13
a = 13
请重新输入一个整数:23
a = 23
这也强化了上节课所讲的一个概念,就像整型变量存放整型数字一样,指针变量用来存放地址;就像可以将整型变量当作是整型数字来使用一样 (比如说一个整形变量 a =3, b= 4,那么 a+b 实际上就可以看作是 3+4),指针变量也可以当作是地址来使用。
比如说现在我们想要输入的是一个字符串,可以使用下面的这段程序
#include <stdio.h>
int main()
{
char str[128];
printf("请输入鱼C的域名:");
scanf("%s", str);
printf("鱼C工作室的域名是:%s\n", str);
printf("str 的地址是&#x