关于指针的笔记【1】【C语言程序设计-谭浩强】
指针是什么?
一个 变量的地址称为该变量的"指针"【将地址形象化的称为“指针”】。(指针是什么百度百科)
注意区分储存单元的地址和内容这两个概念的区别。
直接访问:直接按变量名进行访问,直接通过变量名访问变量内容
间接访问:将变量a的地址存放到另一个变量b中,然后通过变量b找到变量a的地址,从而访问变量a的内容。
指针变量
一个变量a专门用来存放另一个变量b的地址(即指针),则称变量a为指针变量。
指针变量就是地址变量,用来存放地址,指针变量的值就是地址(即指针)。
注意区分指针与指针变量这两个概念。(指针是一个地址,指针变量是存放地址值的变量)
指针使用例子:
1 #include <stdio.h> 2 int main() 3 { 4 int a=100,b=10; 5 //定义整型变量a,b,并初始化 6 int * pointer_1, * pointer_2; 7 //定义指向整数型数据的指针变量 pointer_1,pointer_2 8 pointer_1=&a; 9 //把变量a的地址赋给指针变量pointer_1 10 pointer_2=&b; 11 //把变量b的地址赋给指针变量pointer_2 12 printf("a=%d,b=%d\n",a,b); 13 //通过变量名直接访问a和b的值 14 printf("* pointer_1=%d, * pointer_2=%d\n", * pointer_1, * pointer_2); 15 //通过指针变量间接访问输出a和b的值 16 17 return 0; 18 }
定义指针变量的格式:
类型名 * 指针变量名;(可以在定义时同时对它初始化)
类型名是在定义指针变量时必须指定的“基类型”,基类型用来指定此指针变量可以指向的变量的类型。
因此,指针变量是基本数据类型派生出来的类型,它不能离开基本数据类型而独立存在。
一个变量的指针的含义包括两个方面,一是一存储单元编号表示的地址,一是它指向的存储单元的数据类型(如 int,char,float等)。
说明指针变量a时,应该说:a是指向(基本数据类型)的指针变量
引用指针变量
给指针变量赋值:
p=&a; //把a的地址赋值给指针变量p
引用指针变量指向的变量:
printf("%d", * p);//以整数型式输出指针变量p所指向的变量的值,即变量a的值
* p =1; //表示把整数1赋给p当前所指向的变量,如果p指向变量a,则相当于把1赋给a,即“a=1”。
引用指针变量的值:
printf("%o",p);//作用是以八进制数型式输出指针变量p的值,如果p指向a,就是输出a的地址,即&a
注意:熟悉这两个运算符
1.& 取地址运算符
2.* 指针运算符(“间接访问”运算符),*p代表指针变量p指向的对象
示例代码:
1 #include <stdio.h> 2 int main(){ 3 int *p1, *p2, a, b; 4 printf("please enter two integer numbers:"); 5 scanf("%d,%d",&a,&b); 6 p1=&a; 7 p2=&b; 8 if(a<b){ 9 p1=&b; 10 p2=&a; 11 } 12 printf("a=%d,b=%d\n",a,b); 13 printf("max=%d,min=%d\n", *p1, *p2); 14 return 0; 15 }
指针变量作为函数参数
1 #include <stdio.h> 2 int main(){ 3 void swap(int *pi,int *p2); 4 int a,b; 5 int *pointer_1, *pointer_2; 6 printf("pleadse enter a and b:"); 7 scanf("%d,%d",&a,&b); 8 pointer_1=&a; 9 pointer_2=&b; 10 if(a<b){ 11 swap(pointer_1,pointer_2); 12 } 13 printf("max=%d,min=%d\n",a,b); 14 return 0; 15 } 16 void swap(int *p1,int *p2){ 17 int temp; 18 temp= *p1; 19 *p1= *p2; 20 *p2= temp; 21 }
可以在函数内通过操作指针,改变函数外数据。
下一篇: 驴妈妈旅游菜单导航带源码
推荐阅读
-
C语言程序设计-现代方法(笔记1)
-
c语言初学-关于指针作为参数并改变它的值的问题
-
【学习笔记】C语言习题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
-
C语言编程笔记丨如何理解指向指针的指针?
-
C语言中的指针与数组的关联1
-
C语言程序设计学习笔记--对文件的输入输出
-
Linux下的C语言笔记之指针讲解
-
C语言工作笔记-对函数指针的进一步认识(与回调函数结合使用,并且对比C++的回调)
-
C语言程序设计(第四版)谭浩强著读书笔记(一)之Hello World
-
模板基础知识1——《C++程序设计语言(第四版)》第23章 模板 笔记