1、如何访问一个空间?
有名访问
无名访问
指针的大小跟你的编译器是x64系统还是x86系统有关,
%p,打印地址(十六进制)
C语言如何用地址来描述一个空间?
C语言如何识别变量的属性?
- 定位,先右看,再左看
数组:有多少个?每一个怎么存的?
高级变形第二个:
- 定位---a5【一个指针,地址,门牌号】
- 怎么访问?一个到另一个多少字节、空间??
- 右看----【说明访问空间的方式是数组,5个5个访问】
- 左看----以int方式访问
- a5相当于钥匙,5个int5个int的方式访问。
第三个类似,4个4个地访问,只不过是明确告诉你有3串。
char (*a[5])[4];
a--右看--升级为数组【a大箱子中放了5个小箱子,每个小箱子里存了一把钥匙】--怎么访问??---把()作为整体,四个char四个char地访问。
2、函数地址保存
函数是空间
-函数名就是这个空间地址的常量值的代号
如何用一个变量保存这个代号?
-保存这个代号,地址
-案例:printf更换名
int fun(){
xxx
}
int main(){
xxx=abc;
xxx();
}
//案例:printf换名
#include<stdio.h>
int xxx(void)//假设这个是printf()的函数【在头文件中找到printf的函数声明】
int main(){
int (*myshow)(const char *__format,...);//从头文件中找到的。
myshow=printf;
myshow('hello world!\n');
return 0;
}
//模拟计划执行表
#include<stdio.h>
void do_game() {
printf("play game!\n");
}
void do_book() {
printf("read books!\n");
}
void do_music() {
printf("listen music!\n");
}
int main() {
int i;
//定义一个数组空间,保存了key,每把钥匙是的函数行为;
void(*event[3])(void);
//设置每天做的事
event[0] = do_game;
event[1] = do_book;
event[2] = do_music;
//[相当于实现了上串代码的------函数改名]
//循环执行每天做的事情
for (i = 0; i < 3; i++) {
event[i]();
}
return 0;
}
3、空间的属性3.7
空间可以任意访问吗?
为什么?char
未完待续。。。
标签:do,访问,24.4,void,笔记,C语言,int,printf,event From: https://blog.csdn.net/weixin_47011416/article/details/137407090