以下是本人总结的几个关于C语言指针常遇到的几个问题,你能答几个?
4.1 我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么问题?char *p; *p = malloc(10);
4.2 *p++ 自增 p 还是 p 所指向的变量?
4.3 我有一个 char * 型指针正巧指向一些 int 型变量, 我想跳过它们。为什么如下的代码((int *)p)++; 不行?
4.4 我有个函数,它应该接受并初始化一个指针 void f(int *ip) { static int dummy = 5; ip = &dummy;}
但是当我如下调用时: int *ip;f(ip); 调用者的指针却没有任何变化。
4.5 我能否用 void** 指针作为参数, 使函数按引用接受一般指针?
4.6 我有一个函数 extern int f(int *); 它接受指向 int 型的指针。我怎样用引用方式传入一个常数?下面这样的调用 f(&5); 似乎不行。
4.7 C 有 “按引用传递” 吗?
4.8 我看到了用指针调用函数的不同语法形式。到底怎么回事?
4.9 我怎样把一个 int 变量转换为 char * 型?我试了类型转换, 但是不行。
![3d053c63d1eb07a32f735140ab9e93eb.png](https://i-blog.csdnimg.cn/blog_migrate/b898c379b789fc390b68357331661c90.jpeg)
![f3a3225a019b937955c9db3546d3a3b9.png](https://i-blog.csdnimg.cn/blog_migrate/13e67c72b3e26dd482b852080330a928.jpeg)
![f39ab1256ae4980106ed77124f459f3c.png](https://i-blog.csdnimg.cn/blog_migrate/4bdb03c5bc55b9e461136485cd63fbed.jpeg)