一个数组的元素均为指针类型,称为指针数组。指针数组中的每一个元素应都有地址,相当于一个变量。
文章目录
前言
一、指针数组的定义
二、指向指针数组的指针变量
1.指针数组
2.多重指针
三、main函数的参数
1.argc argv envp
总结
前言
主要是指针数组,多重指针、指针数组做main函数的参数的内容
一、指针数组的定义
定义时,【】的优先级比*高,p[4]表示一个4元素的数组,再结合*,表示这个数组是指针数组
二、指向指针数组的指针变量
1.指针数组
从小到大打印字符串:
#include <string.h>
void sort(char* str[], int n)
{int i = 0;int j = 0;//趟数for (i = 0; i < n-1; i++){for (j = 0; j < n - 1 - i; j++){if (strcmp(str[j], str[j + 1]) > 0){char* tmp = str[j];str[j] = str[j + 1];str[j + 1] = tmp;}}}
}
void print(char* str[], int n)
{int i = 0;for (i = 0; i < n; i++){printf("%s ", str[i]);}
}
int main()
{char* str[3] = { "zhangsan","lisi","wangwu" };sort(str, 3);print(str, 3);return 0;
}
2.多重指针
定义多重指针打印字符串:
int main()
{char* str[] = {"zhangsan","lisi","wangwu"};int** p = str;int i = 0;for (i = 0; i < 3; i++){printf("%s ", *(p + i));}return 0;
}
该处使用多重指针,str是一个指针数组,表示数组的首地址,赋给p,p存放的是数组首地址,因为str是指针,定义p就需要双重指针。
三、main函数的参数
1.argc argv envp
代码如下(示例):
int main(int argc,char* argv[],char* envp[])
{return 0;
}
命令参数argc、argv 环境变量envp
总结
(未完待续.....)