// # include
// using namespace std;
// #define day 9
// int main() {
// int a = 10;
// cout << “a = " << a << endl;
// cout << sizeof(a) << endl;
// cout << day << endl;
// cout << sizeof(day) << endl;
// const int b = 20;
// cout << b << endl;
// float f = 3.14;
// cout << f << endl;
// float f2 = 2e2;
// cout << f2 << endl;
// char ch = ‘a’;
// cout << ch << endl;
// cout << (int) ch << endl;
// cout << “hellow rodl\n”;
// char str1[] = “hwllo”;
// printf(”%s\n", str1);
// cout << str1 << endl;
// string str2 = “djdjwo”;
// cout << str2 << endl;
// bool flag = true;
// int a;
// cin >> a;
// if (a > 60);
// {
// cout << a << endl;
// }
// int a = 10, b = 20, c = 30;
// int max;
// max = (a > b ? a : b) > c ? (a > b ? a : b) : c;
// cout << max << endl;
// int num = 100;
// do {
// int a = num / 100;
// int b = (num % 100) / 10;
// int c = num % 10;
// if (a * a * a + b * b * b + c * c* c == num) {
// printf(“%d\n”, num);
// }
// num++;
// } while (num <= 999);
// for (int i = 1; i <= 9; i++) {
// for (int j = 1; j <= i; j++) {
// printf("%d * %d = %d ", j, i, i * j);
// }
// printf("\n");
// }
// int arr1[10] = {12, 13};
// printf("%p\n", &arr1[0]);
// printf("%p\n", arr1);
// int arr[] = {12, 34, 45, 65, 27};
// for (int i = 0; i < 5; i++) {
// if (arr[i] > arr[i + 1]) {
// int temp;
// temp = arr[i];
// arr[i] = arr[i + 1];
// arr[i + 1] =temp;
// }
// }
// printf("%d\n", arr[4]);
// int arr[] = {1, 3, 2, 5, 4};
// int len = sizeof(arr) / sizeof(int);
// int start = 0;
// int end = len - 1;
// // while (start < end) {
// // int temp = arr[start];
// // arr[start] = arr[end];
// // arr[end] = temp;
// // start++;
// // end--;
// // }
// for (int i = 0; i < len / 2; i++) {
// int temp = arr[i];
// arr[i] = arr[len - 1 - i];
// arr[len - 1 - i] = temp;
// }
// for (int i = 0; i < len; i++) {
// printf("%d\n", arr[i]);
// }
// int arr[] = {1, 43, 54, 12, 54};
// int len = sizeof(arr) / sizeof(int);
// for (int i = 0; i < len; i++) {
// for (int j = 0; j < len - 1 - i; j++) {
// if (arr[j] > arr[j + 1]) {
// int temp = arr[j];
// arr[j] = arr[j + 1];
// arr[j + 1] = temp;
// }
// }
// }
// for (int i = 0; i < len; i++) {
// printf("%d\n", arr[i]);
// }
// int arr[][3] = {1, 2};
// printf(“%d\n”, sizeof(arr));
// printf(“%d\n”, sizeof(arr) / sizeof(int));
// printf(“%d\n”, arr[0][2]);
// }
#include <stdio.h>
// int main() {
// int a = 1;
// int* p = &a;
// printf(“%p\n”, p);
// printf(“%d\n”, p);
// int p = NULL;
// printf(“%d\n”, p);
// 当你将一个地址(例如 0x7ffee7600694)直接赋值给一个指针时,这个地址本身是一个无类型的原始地址
// 具体来说,它是一个 void 类型的地址,表示一个通用的内存地址
// 当你进行类型转换 (int*)0x7ffee7600694 时,你实际上是告诉编译器将这个无类型的地址解释为指向 int 类型的指针
// 也就是说,原本的地址是一个 void* 类型的地址,通过类型转换,你将其解释为一个 int* 类型的指针
// int* p = (int*)0x7ffee7600694;
// printf(“%d\n”, p);
// int a = 20;
// const int p = &a;
// int arr[] = {1, 3, 5};
// int* p = arr;
// printf(“%d\n”, *p);
// int len = sizeof(arr) / sizeof(int);
// for (int i = 0; i < len; i++) {
// printf(“%d\n”, *(p++));
// }
// }
#include <string.h>
// struct student {
// char student_name[20];
// int age;
// };
// struct teacher {
// char teacher_name[20];
// struct student sArr[5];
// };
// void allocate(struct teacher tArr[], int len, int length_sArr) {
// char strSpeed[] = “ABCDE”;
// const char teacher_name_Arr[] = “Teacher_”;
// int num = sizeof(teacher_name_Arr);
// for (int i = 0; i < len; i++) {
// for (int j = 0; j < num - 1; j++) {
// tArr[i].teacher_name[j] = teacher_name_Arr[j];
// }
// tArr[i].teacher_name[num - 1] = strSpeed[i];
// tArr[i].teacher_name[num] = ‘\0’;
// for (int z = 0; z < length_sArr; z++) {
// int k = 0;
// const char* student_name_Arr = “Student_”;
// while (*student_name_Arr != ‘\0’) {
// tArr[i].sArr[z].student_name[k++] = *(student_name_Arr++);
// }
// tArr[i].sArr[z].student_name[k++] = strSpeed[z];
// tArr[i].sArr[z].student_name[k] = ‘\0’;
// tArr[i].sArr[z].age = 60;
// }
// }
// }
// void printfinfo(teacher tArr[], int len, int len_sArr) {
// for (int i = 0; i < len; i++) {
// char* ptr = tArr[i].teacher_name;
// while (*ptr != ‘\0’) {
// printf(“%c”, *ptr);
// ptr++;
// }
// printf(“\n”);
// // printf(“%s\n”, tArr[i].teacher_name);
// for (int j = 0; j < len_sArr; j++) {
// printf(“%s\n”, tArr[i].sArr[j].student_name);
// printf(“%d\n”, tArr[i].sArr[j].age);
// }
// }
// }
// int main() {
// struct teacher tArr[3];
// int len = sizeof(tArr) / sizeof(teacher);
// int length_sArr = sizeof(tArr[0].sArr) / sizeof(student);
// allocate(tArr, len, length_sArr);
// printfinfo(tArr, len, length_sArr);
// }
// int main() {
// // struct student s1;
// // s1.a = 10;
// // s1.age = 20;
// // printf(“%d\n”, s1.a);
// struct student s2 = {12, 34};
// struct student* p2 = &s2;
// printf(“%d\n”, p2 -> a);
// printf(“%d\n”, (*p2).a);
// struct teacher t2;
// }
// struct person {
// char name[20];
// int age;
// char sex[4];
// };
// void pArrsort(struct person pArr[], int len) {
// for (int i = 0; i < len; i++) {
// for (int j = 0; j < len - i - 1; j++) {
// if (pArr[j].age > pArr[j + 1].age) {
// struct person temp = pArr[j];
// pArr[j] = pArr[j + 1];
// pArr[j + 1] = temp;
// }
// }
// }
// }
// void pArrsort(struct person* pArr, int len) {
// for (int i = 0; i < len; i++) {
// for (int j = 0; j < len - i - 1; j++) {
// if (pArr[j].age > pArr[j + 1].age) {
// struct person temp = pArr[j];
// pArr[j] = pArr[j + 1];
// pArr[j + 1] = temp;
// }
// }
// }
// }
// int main() {
// struct person p1 = {“Li”, 18, “男”};
// struct person p2 = {“Zhang”, 19, “男”};
// struct person p3 = {“Wang”, 17, “男”};
// struct person pArr[3] = {p1, p2, p3};
// int len = sizeof(pArr) / sizeof(p1);
// pArrsort(pArr, len);
// for (int i = 0; i < len; i++) {
// printf(“%s\n”, pArr[i].name);
// }
// }
// #include <stdio.h>
struct person {
char name[10];
int age;
char gender[10];
};
// int main() {
// struct person p1 = {“Li”, 18, “男”};
// struct person* p2 = &p1;
// printf(“%s\n”, p2->name);
// printf(“%d\n”, (*p2).age);
// }
// 按年龄排序的函数
// struct person** pArr = &pArr;
// pArr = pArr
// pArr[i] 指针 数组里的值,但是这个数组里存的是指针
// (pArr[i]) 值 对这个指针进行解引用
void pArrsort(struct person pArr, int len) {
for (int i = 0; i < len; i++) {
for (int j = 0; j < len - i - 1; j++) {
if (pArr[j]->age > pArr[j + 1]->age) {
// 交换指针
struct person* temp = pArr[j];
pArr[j] = pArr[j + 1];
pArr[j + 1] = temp;
}
printf(“%s\n”, (*pArr[j]).name);
printf(“%d\n”, pArr[j]->age);
}
}
}
int main() {
person p1 = {“Li”, 18, “男”};
struct person p2 = {“Zhang”, 19, “男”};
struct person p3 = {“Wang”, 17, “男”};
struct person* pArr[] = {&p1, &p2, &p3};
int len = sizeof(pArr) / sizeof(pArr[0]);
pArrsort(pArr, len);
// for (int i = 0; i < len; i++) {
// printf(“%s\n”, pArr[i]->name);
// printf(“%d\n”, (*pArr[i]).age);
// }
return 0;
}
c