当前位置: 首页 > news >正文

网站小图标素材教育网站开发

网站小图标素材,教育网站开发,网站建设项目总结报告,最近国际重大新闻先来讲一下本人学指针的经历#xff1a;大一的时候刚接触c语言对指针这东西真的是太迷了#xff0c;感觉麻烦难懂不想其他语言一样。但是搞懂以后就被指针的魅力吸引甚至喜欢上c语言。不多讲#xff0c;开始#xff01;(文章可能有些长#xff0c;但放心全是基础的东西大一的时候刚接触c语言对指针这东西真的是太迷了感觉麻烦难懂不想其他语言一样。但是搞懂以后就被指针的魅力吸引甚至喜欢上c语言。不多讲开始(文章可能有些长但放心全是基础的东西里面有实际的例子。)理解变量的存储int main(){    int a 4;    printf(%d\n, a);    printf(%p, a);    return 0;}结果400000004(1)int a;c语言在内存的存储是以栈的形式。在栈中先定义了一个变量a并在内存中开辟了大小为4个字节的空间。然后让a指向这片空间。此时小宝贝就有了自己的空间了就可以放东西了耶(2)a4;此时将4的值赋就是将4存到a的那片空间中。由以上代码可知第一个输出的是存放的值第二个输出的是a空间的地址。但是我们通常是不直接这样给变量赋值往往是手动输入scanf(%d,a);用户先输入一个int型的值a先找到自己的那片空间(是取地址符)然后经值转化为二进制存入到这个空间里。(嘿嘿一个宝藏就这样存了进来)找到宝藏的法宝——指针既然有了自己的空间又有了值那谁能知道我的地址来发现我的宝藏呢哈哈指针来了。他来了他来了他真的来了首先要知道指针指向的是地址是地址是地址不要误以为他指的的是变量的值。指针变量的定义与赋值第一种形式int *pa;第二种形式int *p;pa;int *p;这里要区分int*是在一起的代表指针类型p指的是指针变量。多级指针指向指针的指针有时人们也管它叫多维指针。既然指针变量是一个变量指针变量能存变量的内存的地址。像 int * 存 int 型变量的地址char * 存 char 型的地址那指针理所当然可以存指针变量的地址啊。例如int ** 存 int * 的地址int *** 存 int ** 的地址。这就是一个二级指针存一级指针的地址三级指针存二级指针的地址人们把这样的过程叫指向指针的指针但其实也就是一个上一级的指针存了下一级的指针的地址而已。因此像上面说的你存了它的地址你就是指向它所以二级指针存一级指针的地址那么可以说二级指针指向一级指针三级指针存二级指针的地址那么可以说二级指针指向一级指针多级指针用处多多。唉怎么说呢本人也是刚学c语言没多久能力也有限只是有自己的理解例子还是请大家去实践。指针的应用1.作为参数的指针(指针变量作为函数参数):我们都知道在使用自定义函数时每个自定义函数与主函数之间联系都是通过值传递的形式但是并不能通过在自定义函数中改变参数的值来改变主函数中参数的值。但是通过指针就能在自定义函数中访问主函数的变量了。简单的例子void  fun(int *p)int i0;fun(i)//因为自定义函数形参是指针所以调用函数时传入地址。这样在自定义的函数中就可以通过这个指针访问外面这个i看几个代码的例子:(1)不能通过在自定义函数中改变参数的值来改变主函数中参数的值:voidchange(intp){printf(%d\n,p);//接受的值为5p6;//想要改变参数的值}intmain(){intp5;change(p);printf(%d\n,p);return0;}结果55//值并没有发生改变(2)利用指针后void change(int *p){    printf(%d\n, *p);//接受的值为5    *p 6;//通过指针访问值把p的值改为6}int main(){    int p5;    change(p);//传入地址    printf(%d\n, p);    return 0;}结果56//主函数的值发生改变再看一个例子利用自定义函数来比较三个数的大小#include//交换void swap(int* p1, int* p2){    int temp;    temp *p1;    *p1 *p2;    *p2 temp;}//comparevoid compare(int* p1, int* p2, int* p3)//定义指针变量利用指针和主函数中的变量联系{    if (*p1 * p2)swap(p1, p2);    if (*p1 * p3)swap(p1, p3);    if (*p2 * p3)swap(p2, p3);}int main(){    int* p1, * p2, * p3, a, b, c;    scanf_s(%d,%d,%d, a, b, c);    p1 a;//指针变量接收地址    p2 b;    p3 c;    compare(p1, p2, p3);//自定义函数指针接收的仍是地址    printf(%d,%d,%d, a, b, c);    return 0;}2.双胞胎——指针还是数组(用数组名做函数参数)首先必须了解一个基本知识。大家都知道一个数组有多个变量那么如何访问数组中的变量(那么多宝藏怎么找啊)。数组是一个连续的空间只要将首元素的地址赋给指针指针通过首元素的地址访问到了数组的首元素那么通过遍历的方法不就访问到了整个数组。(就像顺腾摸瓜一样)赋值方式int *p;pa[0];//或者利用元素名int *p;pa;//aa[0]先看下列伪代码代码一void fun(int arr[],int n )int main()int array[10],,,,,,,,,,,fun(array,10)代码二void fun(int *arr,int n )int main()int array[10],,,,,,,,,,,fun(array,10)这两个伪代码是等价的即数组名作为函数参数时可以当做是指针。原理嘛允许我偷下懒哈哈况且比我讲的明白(接图)代码实例逆序输出数组中的数void reversed(int a[], int n)//数组作为指针变量接收地址int a[]等价于int *a{    int i, j, m (n - 1) / 2,temp;    for (i 0; i m; i)    {        j n - 1 - i;//控制序列j        temp a[i];        a[i] a[j];        a[j] temp;    }    for (int i 0; i 5; i)        printf(%d\t, a[i]);//利用指针访问元素}int main(){    int a[5];    int n 5;    for(int i 0; i 5; i)    {        scanf_s(%d,, a[i]);    }    for (int i 0; i 5; i)    {        printf(%d\t, a[i]);    }printf(\n);    reversed(a, n);//数组名作为地址对函数进行调用}比较数组中数字的大小void compare(int a[],int len,int *min,int *max){        int i;        *min *maxa[0];        for (i 1; i len; i)        {               *max a[i] *max ? a[i] : *max;               *min a[i] *min ? a[i] : *min;        }}int main(){        int a[] {1,2,3,4546,7,3,2,1,89,334};        int i;        int len sizeof(a) / sizeof(a[0]);//数组的长度        int min, max;        compare(a,len,min,max);        printf(min%d,max%d, min, max);        return 0;}3.二维数组元素的地址首先要明白的一点就是二维数组其实就是一维数组。在普通的一维数组中(a[0]),用数组名a作为数组a[0]的地址那么在二维数组中(a[3][4])a[0],a[1],a[2]就表示数组第一个元素的地址。这个结合一下实例可能比较好理解一下代码实例以a[0]作为元素地址int main(){    int a[3][4] {12,2,3,4,56,7,8,9,10,1,9,34};    //int n 5;    int* p;    for(pa[0]; p    {        if ((p - a[1]) % 4 0)           printf(\n);        printf(%d\t, *p);    }    return 0;}结果12      2       3       456      7       8       910      1       9       34E:\vs\c\h\Debug\h.exe (进程 12316)已退出代码为 0。按任意键关闭此窗口. . .若以a[1]作为元素地址int main(){    int a[3][4] {12,2,3,4,56,7,8,9,10,1,9,34};    //int n 5;    int* p;    for(pa[1]; p
http://www.yutouwan.com/news/448507/

相关文章:

  • 调试网站解析域名影响西安网页设计招聘信息
  • 手机网站开发工具 2018品牌建设的六个步骤
  • 福建省鑫通建设有限公司网站重庆网站建设jwzcq
  • 西安大型网站建设怎么自己做一个网站平台
  • 天门网站建设网站建设布局设计
  • 成都市高新区规划建设局网站网站seo外包公司有哪些
  • 做美工要开通什么网站的会员呢手机上可以做网站
  • 网站横幅怎么制作教程学建设网站去哪里学
  • 网站关键词快排名做网站 (公司)
  • 济南赢动网站建设提高网站权重的方法
  • 景区网站的建设公司母婴网站源码
  • 企业的网站建设需要做什么关闭小程序api
  • 如何让网站速度快动漫设计与制作专业学校
  • 南京医疗网站建设做网站的公司盐城
  • 网站的版权信息别人冒用我们公司做的网站怎么关掉
  • 网站建设项目经理招聘wordpress手机滑动导航
  • 个人做网站名称可以随意更改吗网络建设解决方案专业公司
  • 白山市建设局网站网站排名下降
  • 哈尔滨网站建设公司有哪些vps如何做网站步骤
  • 哪个网站设计好互联网行业五行属什么
  • 网站快速排名优化哪家好php做图片交互网站代码
  • 江苏建设行业证书编号查询网站为什么网站搜索不到
  • 广州市品牌网站建设公司商业网站开发与设计
  • 南通网站制作维护建设手机网站例
  • 企业网站相关案例wordpress灰色产业
  • 个人网站做app上传wordpress网站好用吗
  • 工程管理毕业设计代做网站wordpress 年度归档
  • 做影视网站关停网站建设 爱诚科技公司
  • wordpress删除主题网站排名优化外包
  • 广东城市建设档案馆官方网站做网站卖机器怎么弄