1. 指针数组
1.1 基本概念
指针数组是指一个数组,其中的每个元素都是指针。
这意味着数组中的每个元素都存储一个地址,该地址指向内存中的某个位置。
指针数组的声明形式为:
data_type *array_name[size]; //示例: int *p[10];//该指针数组包含10个整型地址
1.2 简单示例
以下是一个简单的示例,演示了如何声明和使用指针数组:
#include <stdio.h> int main() { // 声明一个整型数组 int num1 = 10, num2 = 20, num3 = 30; int *intArray[3]; // 声明一个包含3个整型指针的数组 // 将指针指向整型变量 intArray[0] = &num1; intArray[1] = &num2; intArray[2] = &num3; // 访问指针数组中的元素并输出值 for (int i = 0; i < 3; i++) { printf("Value at index %d: %d\n", i, *intArray[i]); } return 0; } /*输出结果: Value at index 0: 10 Value at index 1: 20 Value at index 2: 30 */
2. 指针数组做main形参
2.1 int main(int argc, char *argv[]);
指针数组的一个重要应用是做main函数的形参。
1. main
函数的原型通常定义为
int main(int argc, char *argv[]);
说明:
- 其中,
argc
表示命令行参数的数量,argv
是一个指针数组,每个元素都是一个指向以 null 结尾的字符串的指针。- 如果main函数带参数的话,则第一个参数必须是int型,第二个参数必须是字符指针数组 char *xx[],参数只能由操作系统给出。
2.2 简单示例
下面例子中,
argc
表示命令行参数的数量,而argv
是一个指针数组,其中每个元素都是一个指向字符串的指针。程序通过循环遍历argv
数组,输出每个命令行参数的内容。
#include <stdio.h> int main(int argc, char *argv[]) { printf("Number of command line arguments: %d\n", argc); // 遍历指针数组,输出每个命令行参数 for (int i = 0; i < argc; i++) { printf("Argument %d: %s\n", i, argv[i]); } return 0; } /*输出 Number of command line arguments: 1 Argument 0: D:\Program Files\code\CC++程序集合\c\【谭浩强】C语言自学\output\mytest.exe */