C 程序打印指向字符串的指针数组及其地址

1. C 语言中的指针和指针数组

C 语言是一门比较原始的编程语言,同时也是一门非常强大的编程语言。在 C 语言中,指针和指针数组被广泛地应用于各种场合,用来简化代码和提高程序执行效率。

指针是一个存储变量地址的变量,在 C 语言中,可以通过指针来操作和访问该地址存储的变量,从而改变变量的值。指针可以指向不同的数据类型,包括整数、字符、浮点数、数组、甚至是其他指针类型。指针常用于动态内存分配、数组操作、函数参数传递、结构体和指针操作等。

指针数组是一个数组,它的每个元素都是一个指针。每个指针可以指向不同的数据类型或对象。我们可以使用指针数组来方便地访问不同类型或对象的数据。指针数组的使用需要理解二级指针(也就是指向指针的指针)。

2. 打印指向字符串的指针数组及其地址

2.1 示例代码

#include

int main()

{

char *str[] = {"apple", "banana", "orange", "grape"};

int i, n = 4;

for(i = 0; i < n; i++)

{

printf("str[%d] = %s \n", i, str[i]);

printf("Address of str[%d] = %p \n", i, &str[i]);

}

return 0;

}

2.2 代码解析

上述代码定义了一个指针数组 str,它包含了四个指向字符串的指针元素。接下来,我们使用 for 循环语句遍历整个数组,并分别打印每个元素的值以及它的地址。

printf 语句中,我们使用了 %s%p 来分别输出字符串和地址。其中 %s 表示输出字符串,需要传递一个指向字符串的指针作为参数,而 %p 表示输出地址,需要传递一个指向一个变量或数据的指针变量作为参数。

运行上述代码,输出结果如下:

str[0] = apple

Address of str[0] = 0x7ffc28b8e0b0

str[1] = banana

Address of str[1] = 0x7ffc28b8e0b8

str[2] = orange

Address of str[2] = 0x7ffc28b8e0c0

str[3] = grape

Address of str[3] = 0x7ffc28b8e0c8

在上面的输出中,我们可以看到每个数组元素的值和它的地址。每个元素的地址都是以 16 进制表示的。

3. 总结

指针数组是 C 语言中一个非常有用的数据结构,它可以方便地访问不同类型或对象的数据,并且可以大大简化代码。掌握指针数组的使用和操作,可以帮助我们更好地理解 C 语言程序的底层实现,从而写出更加高效、优美的代码。

后端开发标签