想要成为一名优秀的 C 程序员,学习指针是很有必要的。
1.第一个测试函数
void test0()
{
char c;
char *pc;
/*第一步:所有变量都保存在内存中,打印变量的存储地址*/
printf("&c =%p\n", &c);
printf("&pc =%p\n", &pc);
/* “%p”中的p是pointer(指针)的缩写,也可理解为十六进制输出*/
/*第二步所有变量都可以保存某些值,接着赋值并打印*/
c = 'A';
pc = &c;
printf("c =%c\n", c);
printf("pc =%p\n", pc);
/*第三步:使用指针:1)取值 */
printf("*pc =%c\n", *pc);
}
运行结果:
2.第二个测试函数
void test1()
{
int ia;
int *pi;
char *pc;
/*第一步 : 所有变量都保存在内存中,打印变量的存储地址*/
printf("//第一步\n");
printf("&ia =%p\n", &ia);
printf("&pi =%p\n", &pi);
printf("&pc =%p\n", &pc);
/*第二步:所有变量都可以保存某些值,接着赋值并打印*/
printf("//第二步\n");
ia = 0x12345678;
//ia我们使用十六进制,方便后面对指针移动的理解
pi = &ia;
pc = (char *)&ia;
printf("ia =0x%x\n", ia);
printf("pi =%p\n", pi);
printf("pc =%p\n", pc);
/*第三步:使用指针:1)取值 2)移动指针*/
printf("//第三步:使用指针:1.取值 2.移动指针\n");
printf("*pi =0x%x\n", *pi);
printf("pc =%p\t", pc); printf("*pc =0x%x\n", *pc); pc = pc + 1;
// pc++;
printf("pc =%p\t", pc); printf("*pc =0x%x\n", *pc); pc = pc + 1;
printf("pc =%p\t", pc); printf("*pc =0x%x\n", *pc); pc = pc + 1;
printf("pc =%p\t", pc); printf("*pc =0x%x\n", *pc);
printf("//=================\n");
}
运行结果: