时间:2021-05-20
c语言的指针的存在使得c语言对硬件的操控,以及灵活性得到了极大的提高。
但是指针的使用存在着很多难点问题。
#include<stdlib.h>#include<stdio.h>//这里的函数是指针做参数的例子,要知道这个特性可以弥补c语言只能有一个返回值的特性。void swap1(int *pa,int *pb){ int t =*pa; *pa=*pb; *pb=t;}//main()函数必须要返回一个数字int main(){ int a =15; int b=10; int* t; t=&b; a=b; b=*t; printf("%d\n",b); swap1(&a,&b); printf("%p\t%p",a,b); return 0;}这里我们先定义两个整型的变量a,b
然后再定义一个临时的指针变量,用来存储中间变量
然后将b的变量的内存地址赋值给t,注意这里 t 代表的是内存地址
然后把b的值给a,再用b接受t地址所存储的变量, 注意这里的*t是指t这个地址所指的那个变量。
指针与数组
其实数组的int a[10];
里来说a其实是这个数组的第一个元素的a[0]的指针
所以数组变量本身就是表达地址,所以
int a[10]; int *p=a; //无需用&取地址但是数组的单元表达的是变量,需要用&取地址 a==&a[0];[]运算符可以对数组做,也可以对指针做: p[0] <==>a[0];这里的p[0]相当于*p*a可以表示a[0]数组变量是const的指针const 这个修饰符的作用就是表明一个变量是指定的值不能改变了
int* const p=&i; //p是const*q=26;//OKq++; //ERRORint ls=58; int ls1=64; int* const q=&ls; *q =10; *q=20;// q = &ls1; 这句是不能通过编译的,因为这个指针是不能指向其他位置的地址 //执行成功说明这里的指针变量是可以被改变的 ls=36 ; printf("\n%d",*q); //然后我们来看另外一种情况 int P1=10; int P2=20; int const *T=&P1; T=&P2;//执行结果为30 //*T =15;这里是不能通过编译的,因为这个指针指向的位置存储的变量是不能赋值改变的。 P2=30; printf("\n%d",*T); //关键在于这里的const是在*的前面还是后面决定的 return 0;void mai(const int*p){ int *ls=*p; printf("ls的地址:%p",ls);}这里我们传入了一个指针,但是在函数里,是不能改变这个指针所指向的值的指针的运算
#include<stdio.h>#include<stdlib.h>int main(){ int i,j; i=10;j=12; printf("i,j:%d,%d\n",&i,&j); printf("i,j:%d,%d",*&i+1,&j); printf("\n&i-&j:%d",(&i)-(&j));//这里两个地址做差其实是地址差/类型所占的位数 int *p; p=&i; *p++;//实际上是*(p++);++优先级比*高;数组遍历 printf("\n*p:%d",*p); return 0;}指针的类型转换
void*表示不知道指向什么东西的指针
指针变量的大小是相同的但是,指针是有类型的差别
总之指针的作用
1、需要传入较大的数据的时候用做参数
2、传入数组后对数组做操作
3、函数返回的结果不止一个的时候可以用指针带出(c只能return一个变量,或者值)
需要要用函数来修改不止一个变量
4、动态申请内存.......
具体的后续会更。
总结
到此这篇关于C语言指针入门的简单实例的文章就介绍到这了,更多相关c语言指针实例内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
C语言指针应用简单实例这次来说交换函数的实现:1、#include#includevoidswap(intx,inty){inttemp;temp=x;x=y;
本文提供一款简单的js入门教程,这是一款js数组定义与数组长度实例教程,如果你正在学习js数组的话,我们这里告诉你如何定义数组以及增加数组与数组长度计算实例。先
C语言中值传递和指针传递实例详解在C语言中,函数的参数和返回值的传递方式有两种:值传递和指针传递。值传递和指针传递初学者总会有一种朦胧的感觉,所以建议把指针传递
C++基础教程之指针拷贝详解指针是编程人员的梦魇,对C语言的开发者是如此,对C++的开发者也是如此。特别是在C++中,如果不注意处理类中的指针,非常容易出问题。
以c语言为例,其指针是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分。指针也就是内存地址,指针变量是用来存放内存地址的变量,不同类型的指针变量所占