C语言练习 -- 8
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> //void test(int arr[]) //{ // int sz = sizeof(arr) / sizeof(arr[0]); // printf("%d\n", sz); //} // //int main() //{ // int arr[10] = { 0 }; // test(arr); // return 0; //} //int main() //{ // char arr[] = "abcdef"; // char* pc = arr; // printf("%s\n", arr); // printf("%s\n", pc); // return 0; //} //int main() //{ // char arr1[] = "abcdef"; // char arr2[] = "acbdef"; // char* p1 = "abcdef"; // char* p2 = "abcdef"; // // if (p1 == p2) // { // printf("hehe\n"); // } // else // { // printf("haha\n"); // } // // //if (arr1 == arr2) // //{ // // printf("hehe\n"); // //} // //else // //{ // // printf("haha\n"); // //} // return 0; //} // // //int main() //{ // int arr[10] = { 0 };//整型数组 // char ch[5] = { 0 };//字符数组 // int* parr[4];//存放整型指针的数组 - 指针数组 // char* pch[5];//存放字符指针的数组 - 指针数组 // return 0; //} //int main() //{ // int a = 10; // int b = 20; // int c = 30; // int d = 40; // int* arr[4] = { &a, & b,&c,&d }; // int i = 0; // for (i = 0; i < 4; i++) // { // printf("%d ", *(arr[i])); // } // return 0; //} //int main() //{ // int arr1[] = { 1,2,3,4,5 }; // int arr2[] = { 2,3,4,5,6 }; // int arr3[] = { 3,4,5,6,7 }; // int* parr[] = { arr1,arr2,arr3 }; // int i = 0; // for (i = 0; i < 3; i++) // { // int j = 0; // for (j = 0; j < 5; j++) // { // printf("%d ", *(parr[i] + j)); // } // printf("\n"); // } // return 0; //} //数组指针 - 指针 //int main() //{ // int* p = NULL;//整型指针 - 指向整型的指针 - 可以存放整型的地址 // char* pc = NULL;//pc是字符指针 - 指向字符的指针 - 可以存放字符的地址 // //数组指针 - 指向数组的指针 - 可以存放数组的地址 // int arr[10] = { 0 }; // //arr - 首元素地址 // //&arr[0] - 首元素地址 // //&arr - 数组的地址 // // int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; // int (* p)[10] = &arr;//数组的地址要存起来 // //上面的p就是数组指针 // return 0; //} //int main() //{ // char* arr[5]; // char*(*pa)[5] = &arr; // return 0; //} //int main() //{ // int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // int* p = arr; // int i = 0; // for (i = 0; i < 10; i++) // { // printf("%d ", *(p + i)); // } //int(*pa)[10] = &arr; //int i = 0; //for (i = 0; i < 10; i++) // { // printf("%d ",*( * pa + i));//*pa == arr // } //for (i = 0; i < 10; i++) //{ // printf("%d ",(*pa)[i]); //} // return 0; //} ////参数是数组的形式 //void print1(int arr[3][5], int x, int y) //{ // int i = 0; // int j = 0; // for (i = 0; i < x; i++) // { // for (j = 0; j < y; j++) // { // printf("%d ", arr[i][j]); // } // printf("\n"); // } //} // ////参数是指针的形式 //void print2(int (*p)[5], int x, int y) //{ // int i = 0; // for (i = 0; i < x; i++) // { // int j = 0; // for (j = 0; j < y; j++) // { // //printf("%d ", *(*(p + i) + j)); // printf("%d ", ( * (p + i))[j]); // } // printf("\n"); // } //} //int main() //{ //int arr[3][5] = { {1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7} }; //print1(arr, 3, 5);//arr - 数组名 - 数组名就是首元素地址 //print2(arr, 3, 5); //int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; //int i = 0; //int* p = arr; //for (i = 0; i < 10; i++) //{ // printf("%d ", p[i]); // printf("%d ", *(p + i)); // printf("%d ", arr[i]); // printf("%d ", *(arr + i)); //} //return 0; //} int arr[5];//arr是一个5个元素的整型数组 int* parr1[10];//parr1是一个数组,数组有10个元素,每个元素的类型是int*,parr1是指针数组 int(*parr2)[10];//parr2是一个指针,该指针指向了一个数组,数组有10个元素,每个元素的类型是int,parr2是数组指针 int(*parr3[10])[5];//parr3是一个数组,该数组有10个元素,每个元素是一个指针 - 数组指针,该数组指针指向的数组有5个元素,每个元素是int
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程