C语言指针入门:从键盘输入并探索指针与数组的关系

需积分: 9 0 下载量 2 浏览量 更新于2024-08-19 收藏 1.42MB PPT 举报
"这篇资源主要讨论了如何在C语言中使用指针来处理键盘输入的数值,特别是关于数组和指针的交互操作。" 在C语言编程中,指针是核心概念之一,它允许程序员直接操作内存地址,提高程序效率和灵活性。在提供的描述中,可以看到两种不同的指针用法,它们都涉及到了读取和打印数组中的数值。 首先,声明了一个整型数组`int a[10]`,用来存储从键盘输入的10个整数。接着,有两种定义指针的方法: 1. `int a[10], *i;` 这里`i`是一个指向整型的指针,但它没有被初始化,所以不能直接用于遍历数组。 2. `int a[10], I, *p;` 这里`p`是一个指向整型的指针,并且`p=a;`将数组的首地址赋值给了`p`,这样`p`就可以用来遍历数组了。 然后,提供了几种不同的循环结构来遍历并打印数组中的元素: 1. 使用数组下标`int a[10], i; for(i=0; i<10; i++) printf("%d", a[i]);` 这是最直接的遍历方式,通过数组下标访问每个元素。 2. 使用指针加法`for(i=0; i<10; i++) printf("%d", *(a+i));` 这里`*(a+i)`解引用了指针加法的结果,等效于访问数组元素。 3. 使用指针`for(i=a; i<a+10; i++) printf("%d", *i);` 这种方式也是通过指针来遍历,但`i`直接用数组名初始化,使得它代表数组的首地址。 在C语言中,指针变量`I_pointer`可以存储变量`I`的地址,用`&`运算符获取变量的地址,如`I_pointer = &I`。通过`*`运算符,我们可以访问存储在指针变量中的地址所对应的值,即`*I_pointer`。这种间接访问方式对于理解指针和内存的关系至关重要。 指针变量的定义格式通常是`类型表示符*指针变量名`,例如`int*pointer1, *pointer2, a;`这里`pointer1`和`pointer2`都是指向整型变量的指针。定义指针时的`*`只表示变量是指针类型,不应用于赋值操作。一旦定义了指针变量,如`int*pointer;`,可以用`&`运算符获取某个变量的地址并赋值给指针,如`pointer = &a;`。 在实际使用中,需要注意指针的引用,如`*pointer`表示取指针指向的值,而`&pointer`则获取指针变量的地址。此外,指针变量一旦定义,其类型应保持一致,即只能指向同一类型的变量。 例如,在提供的代码片段中,定义了`int u, v, *pu, *pv;`并初始化了指针`pu = &u;`。这展示了如何通过指针来传递和操作变量的值。通过`*pu`,我们可以读取或修改`u`的值,而`pv`也可以类似地与`v`关联。 这个资源介绍了C语言中指针的基础知识,包括如何定义指针变量、通过指针遍历数组以及指针与变量之间的关系,这些都是编写高效C程序的基础。