c/c++语言开发共享c语言指针汇总

1.指向单个变量的指针; 2.数组的指针 (1)一维数组的指针 (2)二维数组的指针 (1)列指针 (2)行指针 (指向数组的指针) 3.指向函数的指针 4.指向指针的指针(有时候在想前面的*是不是可以无限写下去……) 5.指针数组 6.返回指针值的函数 7.文件指针 FILE *fp; 这里用词不 …

1.指向单个变量的指针;

1 int a = 5;  2 int* p = &a;  3 printf("%d", *p);

2.数组的指针

(1)一维数组的指针

1 int a[5] = { 1,2,3,4,5 };  2 int *p;  3 p = a;  4 printf("%dn", a[1]);  5 printf("%dn", *(p + 1));  6 printf("%d", p[1]);

(2)二维数组的指针

  (1)列指针

1 int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 };  2 int* p;  3 //p = &a[0][0];  4 //p = a[0];  5 p = *a;  6 printf("%dn", *(p + 4 * 2 + 3));  //a[i][j] = *(p + i * n + j);    //n数组的列数  7 printf("%d", a[2][3]);

  (2)行指针 (指向数组的指针)

1 int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 };  2 int(*p)[4];  3 p = a;  4 printf("%dn", a[2][3]);  5 printf("%d", *(*(p + 2) + 3));

3.指向函数的指针

 1 int main()   2 {   3     int func(int a);   4     int (*p)(int a);   5     int a = 5;   6     p = func;   7     (*p)(a);  //调用   8     return 1;   9 }  10 int func(int a)  11 {  12     printf("%d", a);  13     return 1;  14 }

4.指向指针的指针(有时候在想前面的*是不是可以无限写下去……)

1 int a = 5;  2 int* p1, ** p2, *** p3;  3 p1 = &a;  4 p2 = &p1;  5 p3 = &p2;  6 printf("%d", ***p3);

5.指针数组

1 char* p[3] = { "hello", " ", "world" };  2 printf("%s", *(p + 2));

6.返回指针值的函数

 1 int main()   2 {   3     char* mystrcat(char* p1, char* p2);   4     char str[100] = "hello ";   5     char* mes = "world";   6     printf("%sn", mystrcat(str, mes));   7     return 1;   8 }   9 char* mystrcat(char* p1, char* p2)  10 {  11     char* start = p1;  12     while (*p1 != '')  13     {  14         p1++;  15     }  16     while (*p1++ = *p2++)  17     {}  18     return start;  19 }

7.文件指针

  file *fp;

这里用词不太严谨。根据《c语言程序设计(第三版)》,指针是一个地址,而指针变量是存放地址的变量。“指针”和“指针变量”是不同的概念。

然而大多数情况下,都将“指针变量”直接称为“指针”。这里除了第二点,第六点外,”指针“都是指”指针变量“。

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/602447.html

(0)
上一篇 2021年5月11日
下一篇 2021年5月11日

精彩推荐