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

射阳做网站的公司在哪b站推广入口2023破解版

射阳做网站的公司在哪,b站推广入口2023破解版,哪里做网站百度收录块,全栈网站开发者一、指针是什么? 指针是一种在计算机编程中用于存储和操作内存地址的变量。 指针变量中存储的是内存地址,而不是数据本身。通过指针,程序可以直接访问和操…

一、指针是什么?                                                                               

指针是一种在计算机编程中用于存储和操作内存地址的变量。

指针变量中存储的是内存地址,而不是数据本身。通过指针,程序可以直接访问和操作内存中的特定位置,这使得程序员能够更灵活地管理内存,实现对数据的高效访问和修改。

它可以用于在函数之间传递数据、动态分配内存、实现数据结构(如链表、树等)以及优化程序的性能。

注:整型变量分配4个字节、单精度浮点型变量分配4个字节字符型变量分配1个字节

注:数据的分配是分类型的,对不同类型的数据,在内存中分配的存储单元大小,和存储方式是不同的。为了有效存取数据需要位置信息之外,还需要有改数据的类型信息。

例:若有int类型的变量a,和float类型变量b。若先后把它们分配在2000开始的存储单元中,&a和&b的信息完全相同吗?  答案是不相同的,虽然编号相同,但是数据类型不同

二、指针的存取                                                                                   

printf ("%d", &i) ;

在此之前系统已经为 i 分配了按整型存储方式的4个字节。并建立了对应的变量名和地址的对应表。在执行上面语句时——首先通过变量名找到对应的地址,从该4个字节中按照整型数据的存储方式读出整型变量 i 的值,然后按十进制整数格式输出。

scanf("%d",&i);

执行时,把键盘输入的值送到地址为2000开始的整型存储单元中。

这种直接按变量名进行的访问,称为:直接访问

当然也可以:间接访问

i_pointer = &i;  //将 i 的地址存放在i_pointer中,i_pointer的值就是2000 

在此处i_pointer就是    指针变量     ,指针变量的值是地址

三、定义指针变量

一般形式:类型名  * 指针变量名

例如:int *pointer_1, *pointer_2;

int是定义指针变量必须指定“基类型”

注意⚠️:指针变量中只能存放地址,不能存放整数

*pointer_1=100;   //不合法!

四、引用指针变量

(1)给指针变量赋值

p=&a;    //把a的地址赋值给指针变量p

(2)引用指针变量指向的变量

在(1)的基础上:

printf("%d", *p);  //其作用是以整数形式输出指针变量p所指向的变量的值,即a的值

这里*p代表的是一个整数值

*p = 1; //表示将整数1赋给p当前所指的变量,也就是a=1

 (3)引用指针变量的值

printf("%o",p);    //表示输出指针变量p的值,如果p指向a,那就是输出a的地址值,即&a。

1⚠️:     &  取地址运算符,&a是变量a的地址。

2⚠️:     *   指针运算符。*p代表指针变量p指向的对象。

例题:输入两个整数a、b。按大小输出a、b

五、指针变量作为函数参数

还是做两个数交换,例题:

 swap函数表示,传入两个指针变量,进行交换,其中中间值是一个整形变量!所以说交换的是两个地址里面的值

在main函数里定义两个int型指针变量,并且分别指向a、b。如果符合条件就交换两个地址里面的值。此时a、b里面的值已经被换了。

⚠️:swap函数里面的中间变量是指针可以吗?

⚠️:swap函数如果不是用指针来传参,用形参x、y可以吗?

六、通过指针引用数组

所谓数组元素的指针就是数组元素的地址

int a[10] = {1,3,5,7,9,11,13,15,17,19};//定义a为包含10个整型数据的数组
int *p;                                //定义p为指向整型变量的指针变量
p = &a[0];                             //把a[0]元素的地址赋给指针变量p

第三行的p代表是一个地址值!  

  • 数组名代表数组中首元素的地址,因此下面两个语句等价
p = &a[0];  //p的值是a[0]的地址
p = a;      //p的值是数组a首元素(即a[0])的地址
  • 引用一个数组元素,可以使用下面两种方法:

               <下标法,如a[i]  形式。

               <指针法,如 * (a+i)或 *(p+i)

  • 在使用数组元素时指针的运算:

   <指针可以进行加减运算,其结果会根据指针类型自动调整。

int arr[5] = {10, 20, 30, 40, 50};
int *ptr = arr;  // 指向数组首元素ptr + 2;  // 指向arr[2](偏移2*sizeof(int)字节)
ptr - 1;  // 指向arr[-1](需确保地址有效)

<通过修改指针值可以遍历数组:

for (int i = 0; i < 5; i++) {printf("%d ", *ptr);  // 输出当前元素ptr++;  // 指向下一个元素
}

<两个同类型指针相减得到元素个数的差值:

int *p1 = &arr[0];
int *p2 = &arr[3];
printf("%d", p2 - p1);  // 输出:3

分析:*(p++)与*(++p)的作用

*(p++):先取*p的值,然后使p加1。 相当于a[i++]

*(++p) :先使p加1 ,再取*p    ,相当于a[++i]                 

http://www.dtcms.com/wzjs/69822.html

相关文章:

  • 房地产网站怎样建设才能快速盈利chrome 谷歌浏览器
  • 网站建设方案范文8篇mac蜜桃923色号
  • 静态网站 搜索seo查询软件
  • 做货代的有哪些网站国外免费域名
  • 网站建设技术实现网络策划书范文
  • 小型手机网站建设多少钱网站设计案例
  • 个人免费网站申请营销型企业网站
  • 网站的反链要怎么做百度代运营推广
  • 网校课程什么叫优化
  • 新疆建设工程云网站网络推广人员是干什么的
  • 建一个购物网站大约多少钱aso优化是什么意思
  • 做网站的那家公司好2022年新闻摘抄简短
  • 宣讲家网站两学一做网络营销是什么工作
  • 龙岗网站建设做网站seo怎么赚钱
  • 最新国际消息新闻报道杭州网站优化平台
  • 网站做打鱼游戏挣钱吗手机优化软件下载
  • 青岛外贸建设网站樱桃bt官网
  • 如何做衣服销售网站seo顾问服务
  • 景区加强网站建设竞价推广教程
  • 外贸人常用的网站流量精灵网页版
  • 做网站还是做微信公众号百度商家怎么入驻
  • 网页设计代码居中合肥百度seo代理
  • 外链seo推广优化搜索关键词
  • 检测网站为什么打不开了seo服务商
  • 电子网站有哪些2022最新国内新闻50条简短
  • 龙华网站建设多少钱百度网址大全官方下载
  • 网站建设要考外贸如何推广
  • 网站策划书籍推荐俄国搜索引擎yandex入口
  • 网站导航栏修改字体大小seo网站优化培训班
  • 国内免费saas+crm正在网站seo分析报告案例