字符 如下表示(“字母或数组”为字符的表现形式)
char a = "a";
char b = "1";
字符串
char string[] = "iPhone";
字符串可理解为字符数组,表示方法如下(\0为结束符)
char string[] = {"i", "P", "h", "o", "n", "e", "\0"};
一维数组(按顺序排列的数,用对应下标可找到数组中对应的内容)
数组中每个元素都是一个单独的个体
// 数组的表现方式
int array[] = {1, 2, 3, 4};
// 取数组单个元素
int a = arry[0];
printf("%d", a);// 结果为1;
二维数组
int array[][3] = {
{1, 2, 4},
{2, 3, 6},
{3, 4, 7}
}
结构体
struct Student {
int number;
int name;
Date date;
};
struct Date{
int year;
int month;
int day;
};
简单指针
int *p = NULL;
int a = 10;
p = &a;
*p = 5;
结果就是 a = 5;
&(*p) 就是a的地址;
*(&a)就是5;
&(&a)就是p的地址;
*是取值符;
&时取地址符;
一维数组指针 (多数用于在堆内存创建数组)
int array[3] = {2, 6, 8};
int *p = array;
int *p1 = malloc(sizeof(int) * 10);
free(p1);
int *str = "iPhone";
二维数组指针
// 5表示一次跳转五个int的字节长度。二维数组中的每个数组长度为5;
int (*p3)[5] = malloc(sizeof(int) * 5);
指针数组
int *a[4] = {0};
存放指针的数组
指向指针的指针
int a = 6;
int *p = &a;
int **pp = &p;
*p 是&a;
*pp 是&a;
pp 是&p;