#include "stdio.h"
#include "string.h"
char str[] = {"abc"};// char str[] = {'a','b','c'}
char str1[] = {"def"};
char str2[] = {"xyz"};
/*练习指针数组*/
void getStringContent(char *array[3])
{
array[0] = &str;
array[1] = &str1;
array[2] = &str2;
}
/*指针数组:是一个数组 数组的每个值都是一个地址*/
/*练习指针的指针*/
unsigned char buf[] = {"tong"};
void getStringFromBuf(unsigned char **string)
{
*string = &buf[0];
}
/* **string表示 指针string指向 *string的地址 *string 又指向了**string的地址 */
int main()
{
/*普通操作*/
int a = 1;
int *p = NULL;
p = &a;
printf("%d \n", (*p));
//调用普通的
// 调用指针数组
char *array[3];
getStringContent(array);
printf("test 1 %s \n", array[0]);// %s这个占位符需要地址值
printf("test 2 %p \n", array[0]); // str的地址
printf("str的地址 %p \n", str); // str的地址
/*打印str的内容*/
/*指针指向的是str数组的首地址*/
for(int i = 0; i < sizeof(str); i++)
{
printf("%c ", *(array[0] + i) );
}
/*指针的指针*/
//调用
unsigned char *st = NULL;
getStringFromBuf(&st);
printf("\n %s", st);
}