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

公众号里原文单发到dede网站上淄博抖音关键词优化

公众号里原文单发到dede网站上,淄博抖音关键词优化,优化wordpress调用文章函数,电子网站开发导语 本次授课的内容如下:指针,指针和数组 辅助教材为 《C语言程序设计现代方法(第2版)》 指针 指针变量 计算机按字节划分地址,每个地址访问一个字节 指针变量指向变量的地址,指的是变量第一个字节的…

导语

本次授课的内容如下:指针,指针和数组

辅助教材为 《C语言程序设计现代方法(第2版)》

指针

指针变量

计算机按字节划分地址,每个地址访问一个字节

指针变量指向变量的地址,指的是变量第一个字节的地址

int *p;
int i,j,a[10],*p,*q;
int *x;
double *y;
char *z;
sizeof(x);

相关运算符

取地址符&

int x;
int *p;
p=&x;//指针变量存储了地址
scanf("%d",&x);
scanf("%d",p);//等价int i,*p=&i;

间接寻址符*

int x,*p=x;//p是x的别名
x=10;
printf("%d\n",*p);
int y=*&x;
*p=3;
printf("%d %d\n",x,y);

赋值

浅复制:指针指向的是同一个数据

具体讲解书上例子

int i,j,*p,*q;
p=&i;
q=p;
*q=*p;

作参

可以完成对输入参数的修改

#inlcude <stdio.h>
#include <stdlib.h>
void decompose(double x, long *int_part, double *frac_part)//传入的是地址
{*int_part = (long) x;*fract_part = x - *int_part;
}
int main()
{int i;double d;decompose(3.14159, &i, &d);printf("%d %f",i,d);
}

示例程序

#include <stdio.h>
#define N 10
void max_min(int a[], int n, int *max, int *min);
int main(void)
{int b[N], i, big, small;printf("Enter %d numbers: ", N);for (i = 0; i < N; i++)scanf("%d", &b[i]);max_min(b, N, &big, &small);printf("Largest: %d\n", big);printf("Smallest: %d\n", small);return 0;
}
void max_min(int a[], int n, int *max, int *min)
{int i;*max = *min = a[0];for (i = 1; i < n; i++) {if (a[i] > *max)*max = a[i];else if (a[i] < *min)*min = a[i];}
}

作返回

示例程序

int *max(int *a, int *b)
{if (*a > *b)return a;elsereturn b;
}
int *p,i,j;
p=max(&i,&j);
//不能返回局部变量的指针
int*find_middle(int a[], int n) {return &a[n/2];
}

指针和数组

指针算术运算

int*p,a[10];
for(int i=0;i<10;i++)a[i]=i;
p=a;//p指向第一个元素
p++;//p指向第二个元素
p+=5;
p--;
p-=2;
int *q=a;
printf("%d %d",q-p,p-q);p>q?p:q;//指针相互比较为同一数组中的位置

处理数组

指针可以代替变量i

int a[N], sum, *p;
sum = 0;
//p<a+N也可以
for (p = &a[0]; p < =&a[N-1]; p++)sum += *p;

在这里插入图片描述

数组名做指针

数组名是定值,不能用来操作

for (p = a; p < a + N; p++)sum += *p;

数组作为函数参数时,直接复制整个数组,但是如果传入数组名,就只会复制数组的首地址

int find_largest(int a[], int n)
{int i, max;max = a[0];for (i = 0; i < n; i++)if (a[i] > max)max = a[i];return max;
}
int find_largest(int* a, int n)
{int i, max;max = a[0];for (i = 0; i < n; i++)if (a[i] > max)max = a[i];return max;
}

示例程序

#include <stdio.h>
#define N 10
int main(void)
{int a[N], *p;printf("Enter %d numbers: ", N);for (p = a; p < a + N; p++)scanf("%d", p);printf("In reverse order:");for (p = a + N - 1; p >= a; p--)printf(" %d", *p);printf("\n");return 0;
}

指针和多维数组

指针可以使得双循环变单循环

for (row = 0; row < NUM_ROWS; row++)for (col = 0; col < NUM_COLS; col++)a[row][col] = 0;for (p = &a[0][0]; p <= &a[NUM_ROWS-1][NUM_COLS-1]; p++)*p = 0;

如果只是处理一行

for (p = a[i]; p < a[i] + NUM_COLS; p++)*p = 0;

处理一列

for (p = &a[0]; p < &a[NUM_ROWS]; p++)(*p)[i] = 0;

数组是数组名永远会被编译器认为是一维的,而不是二维,是指向a[0]而不是a[0][0]

总结和复习

本次授课讲述第11章和第12章内容,关键点:指针

http://www.yayakq.cn/news/84144/

相关文章:

  • 盗版网站怎么做的北京网站建站推
  • 欧赛网站建设现在主流的网站开发平台有哪些
  • 瓯海建设网站wordpress 页面 按钮
  • 郑州网站营销推广制作图片马
  • 中国林业工程建设协会网站新开传奇网站180合击
  • 好看手机网站推荐上海集团网站建设公司好
  • 农产品电商网站建设的主要工作怎么在网站后台做图片新闻
  • 网站建设服务描述iis 如何搭建网站
  • 阜阳手机网站制作自己创建的网站怎么做流量
  • 中卫网站推广服务企业信息系统的分类
  • wordpress子网站17做网站骗子
  • 政务网站建设规划wordpress 云主机名
  • 一个ip可以建设多少个网站杭州百度人工优化
  • 能源公司网站模板织梦网站首页栏目修改
  • 上海备案证查询网站查询网站查询公司想建立一个网站吗
  • 做poster网站公关公司主要做什么
  • 隆尧网站遵义公司建网站要多少费用
  • 新网站做优化要准备什么广告设计公司管理制度
  • wordpress手机验证福州百度seo代理
  • 建专业外贸网站做的不错的h5高端网站
  • 网站是否上线长沙o2o网站制作公司
  • 网站色彩心理办公室装修效果实景图
  • 网站开发工资山东seo是指什么职位
  • 仿站侵权吗网站开发需求目标
  • 自己做网站代理产品海沧建设网站多少钱
  • 国外免费网站贸易平台前十名营销型网站建设实战
  • 免费发布信息网站有哪些苏州互联网企业排名
  • 免费空间访客网站有网站怎么做企业邮箱
  • 天津做网站制作公司天津河北做网站的公司
  • 陕西公路工程建设有限公司网站阿里云可以做网站吗