c语言指针知识点?计算机c语言基础知识
大家好,如果您还对c语言指针知识点不太了解,没有关系,今天就由本站为大家分享c语言指针知识点的知识,包括计算机c语言基础知识的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
c语言指针知识点总结
1.指针的使用和本质分析
(1)初学指针使用注意事项
1)指针一定要初始化,否则容易产生野指针(后面会详细说明);
2)指针只保存同类型变量的地址,不同类型指针也不要相互赋值;
3)只有当两个指针指向同一个数组中的元素时,才能进行指针间的运算和比较操作;
4)指针只能进行减法运算,结果为同一个数组中所指元素的下标差值。
(2)指针的本质分析
①指针是变量,指针*的意义:
1)在声明时,*号表示所声明的变量为指针。
例如:int n= 1; int* p=&n;
这里,变量p保存着n的地址,即p<—>&n,*p<—>n
2)在使用时,*号表示取指针所指向变量的地址值
C语言的知识点有哪些
1、C语言是一门程序的基础语言,知识点有很多,如果只是应付考试的话,把函数、数组和指针学会了就基本没有问题了,还有就是几种结构按是基础,也是学习必不可少的。C++是在C语言的基础上而法发展起来的,他继承了C语言的大多数编程风格,现在市场上对C语言要求的人很少,软件公司现在都是要C++/java等,极少数招收C语言的,不过学好C++的前提是学好C。
2、非语言部分:
1)首先是基础数学,简单的运算需要会,加减乘除问题不大
2)逻辑数学,分析解决问题逻辑需要清晰有条理
3)线性代数,数据结构中使用
4)概率统计
c语言全面解析十个知识点大学生谨记
C语言10个小知识了解指针
1.若有代码
int a=10,*p;p是指针:也是一个变量,且是一个只能用来存放地址的变量。
2.若有代码int a=10,*p;p=&a;当执行了上面的代码,会说”p指向了a”,其实就是p指针变量存放了a的地址”
3.两个*的区别,有如下代码:
inta=10,*p;//该处的*说明p是一个指针变量用来存放地址p=&a;
*p=*p+1;//该处的*表示p所指的变量中的值即a的值10
总结:变量定义时的*说明该变量是一个指针,调用语句中的*表示指针指向的变量中的值。[此处是比较容易混淆的]
4.int a=10,*p;p=&a;
则:*p=*p+1;//等价:*p+=1;(0)十十
++(*p);
表示的内容相同,都是p所指变量的值+1。
5.*p++和(*p)++的区别是:
等价于*(p++),先获取 p当前所指元素的值,然后p指针+1(p指针向后移动一个单元,一般用在数组中,普通变量会越界);后者仅仅是p所指变量的值+1。
6.定义变量时,
一个*说明该变量是指针,两个*说明该变量是指向指针的指针(存放的是指针变量的地址)
int a=10,*p,**q;p=&a;//p指向a,*p的结果是10q=&p;//g指向p,*q的结果是p的地址值,**q的结果才是10
7,如果调用函数传递的是地址,那么被调函数中形参就需要使用指针接收,在函数中对指针所指变量值的改变,会影响到调用函数中的变量值。执行结果:如图所示
8.一维数组名和指针的区别,有定义:
int a[10l,*p;
p=a;//合法
因为,一维数组名存的是数组首地址,这样使 p指向了a首地址,也就是第一个元素的地址。a++;//不合法
因为a是一个地址常量,开辟了就不能再修改了,一切给数组名字赋值的操作都是非法的。
p++://合法因为p是一个指针,p++表示从当前向后移动了一个位置。
对干上面的定义,a[i]、*(ati)、*(p+i)、p[]都是合法,都是取下标为i的元素值。所以: p++;是使指针向后移动,(*p)+十是当前所指变量的值内容+1.
9,若有定义:
int a[3][22],*p[3l,iJ;
*p[3]中[优先级[高于*,说明p是一个数组名,前面的*说明该数组中每个元素都用来存放指针,这叫指针数组。
如果p和a产生联系,则只能通过逐个赋值的方式完成,即: for(i=0;i<3;i++)p[]=a[l;//合法
因为a[]是二维数组中每行的首地址,所以可以存放到p数组中。
但是 p=a;是非法的,因为a是地址,p是数组的名字,并不是指针名下面获取数组元素的方式都是合法的:
*(pl[il+j)*(*(p+i)+j)(*(p+i))lj]
10.若自定义函数的实参是一维数组名,则该函数的首部可以写成:
fun(int al) fun(int a[M]) fun
(int*a) M表示长度若有自定义函数的实参是二维数组名,则该函数的首部可以写成: fun(int(a)[N])fun(int al[N]) fun(int a[M][N]) M表示行数,N表示列数
若有指针数组作为fun函数的实参,则该函数的首部可以写成:
fun(int*a[M]) fun(int*al) fun(int**a)
关于c语言指针知识点和计算机c语言基础知识的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。