- UID
- 104781
- 性别
- 男
|
C语言的重要概念
一、C语言的指针 1.指针说明 指针是包含另一变量的地址变量。 (1)int *p p是一个指针,指向一个整形数。 (2)int *p() p是一个函数,该函数返回一个指向整数的指针。 (3)int (*p)() p是一个指针,该指针指向一个函数,这个函数返回一个整数。 (4)int *p[] p是一个数组,该数组的每一个元素是指向整数的指针。 (5)int (*p)[] p是一个指针,该指针指向一个数组,这个数组的每一个元素是一个整数。 (6)int *(*p)() p是一个指针,该指针指向一个函数,这个函数返回一个指向整数的指针。 2.指针的初始化(赋地址) (1)通过符号&取变量(包括结构变量、数组第一个元素)的地址赋给指针; (2)把数组名赋给指针; (3)把函数名赋给指向函数的指针; (4)动态分配内存 例:struct c{double r,i;}; struct c *p; p=(struct c *)malloc(sizeof(struct c)); 3.指针与数组、函数的关系 (1)对于一维数组 int a 或指针 int *a a+i 指向 a (2)对于字符串 char s 或指针 char *s s+i 指向第 i个字符 s (3)对于二维数组int a[j] *a+j 指向 a[0][j] *(a+i) 指向 a[0] *(a+i)+j 指向 a[j] 例:对于 a[2][3]={1,2,3,4,5,6,}; 有 *(*(a+1)+1)=5; (4)对于字符串数组char p[j] 或字符型指针数组char *p *p+j 指向第 0个字符串的第 j个字符 *(p+i) 指向第 i个字符串的第 0个字符 *(p+i)+j 指向第 i个字符串的第 j个字符 例:对于 *p[]={"ABC","DEF"}; 有 *(*(p+1)+1)='E'; 例:对于 char p[][3]={"ABC","DEF"}; 有 *(*(p+1)+1)='E'; (5)对于指针数组int *a a 指向 变量i 即 *a=变量i 或 a=&变量i
|
|