优秀的编程知识分享平台

网站首页 > 技术文章 正文

每天学一点万能C语言 16 (c语言的灵魂 指针3)

nanyue 2024-08-25 10:36:30 技术文章 4 ℃

1、字符串数组和字符串指针

字符串存放在栈区,字符串可以被更改

字符串指针:

char *p = “hello world”

指向字符串的首地址,字符串存放在数据区,又被称为字符常量,字符串不可更改

2、指针常量与常量指针

const int a =10; //a的值永远等于10,不能被更改

int a =10;

int * const pa = &a;//常量指针,指向不可更改,指向的数据可以更改

const int * pa = &a;//指针常量,指向可以更改, 指向的数据不可更改

3、指针数组与数组指针

指针数组

数组中存放的元素都是指针,是一个数组

char * arr[5];//数组中每一个元素都是char *型的指针

数组指针

指针的类型是一个数组,是一个指针

char (*pa)[5];//指向一个有5个元素数组的指针变量(pa的类型是一个有5个元素的数组),

//一般与二维数组连用

4、指针函数与函数指针

指针函数

函数的返回值类型是一个指针,是一个函数 格式: 返回值类型 * 函数名(形参)

注意:返回的地址一定要有效,不要返回子函数中局部变量地址

int * add(int *a,int *b)

{

// int sum = *a+*b ; 错误

static int sum = *a+*b; //静态变量

return sum;

}

int main()

{

int a=10,b=20;

int *p =sum(&a,&b);

}

函数指针

是一个指针,指针的类型是一个函数,指向一个固定类型的函数

定义:返回值类型 (*指针变量)(形参);

赋值: 函数指针变量 = 函数名;

调用:函数指针变量(实参);

Tags:

最近发表
标签列表