您的位置:首页 > 编程语言 > C语言/C++

C语言指针笔记 by STP

2015-12-04 17:36 423 查看
指针:存放变量地址的变量

作用:1.可修改函数形参的值(交换两个数的值);

            2.可以利用指针让函数有N个返回值(例如用一个方法返回sum和minus等不同的计算结果);

            3.把指向函数的指针当作参数传递给函数。

格式:

int *i;
char *c;


注意:*只是一个说明符,说明该变量为指针变量,不属于变量名的一部分

错误写法:

int *p;
p=100;//指针变量用来存放地址,不能赋值常量

int *p;
*p=200;//未指向确定地址前,不能对该指针变量赋值


1.指针和字符串:

char *p;//定义一个指针变量p
char c[] = "kristy";//定义一个字符数组
p=c;//指向首字母"k"

//省略定义字符数组,指针直接指向字符串
char *k = "kristy";
正确写法:

char *p;
p="kristy";

错误写法:

char k[6];
k="kristy";//k是一个数组地址常量,不能赋值

char *p = "kristy";
*p = "hello";

char c[]="kristy";//定义的是字符串变量!变量!变量!
char *p = "kristy";//定义的是字符串常量!常量!常量!

2.指针和函数:

指向函数的指针:

//定义一个sum函数,返回两个数的和
int sum(int a,int b){
return a+b;
}
//定义一个指向sum函数的指针p
int (*p)(int a,int b) = sum;

int main(){
int result = (*p)(2,3);
//int result = p(2,3);
printf("结果为:%d",result);
return 0;
}
将指向函数的指针作为参数传递:

#include <stdio.h>

// 减法运算
int minus(int a, int b) {
return a - b;
}

// 加法运算
int sum(int a, int b) {
return a + b;
}

// 这个counting函数是用来做a和b之间的计算,至于做加法还是减法运算,由函数的第1个参数决定
void counting( int (*p)(int, int) , int a, int b) {
int result = p(a, b);
printf("计算结果为:%d\n", result);
}

int main()
{
// 进行加法运算
counting(sum, 8, 3);

// 进行减法运算
counting(minus, 8, 3);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 指针