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

甘肃省铁路投资建设集团有限公司网站网站内链优化

甘肃省铁路投资建设集团有限公司网站,网站内链优化,哈尔滨网站建设,重庆建设工程信息网官网中苏业盛c/c:指针,指针定义和使用,指针大小4字节,野指针,空指针*pNULL 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,此时学会c的话, 我所知道的周边的会c的同学&#xf…

c/c++:指针,指针定义和使用,指针大小4字节,野指针,空指针*p=NULL

2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,此时学会c++的话,
我所知道的周边的会c++的同学,可手握10多个offer,随心所欲,而找啥算法岗的,基本gg
提示:系列c++学习的基础和高阶知识,用于公司生产实践中,实实在在的公司部署产品要用的,因为c++速度快,
而java和Python速度慢,自然往硬件里面部署算法啥的,都得用c++或者c,因此本科学的c很重要,后来的Python或者java就没有那么重要了,
c/c++系列文章:
【1】c++:c语言优缺点,visual studio2019如何新建项目,写hello world程序
【2】c/c++:gcc安装,gcc编译hello world文件,system函数调用系统命令,sleep函数
【3】linux下gcc的编译过程和功能,预处理,编译,汇编,链接,.c预处理为.i文件.s文件.o文件.exe文件
【4】c/c++:windows平台下依赖的动态库,c底层是汇编语言,程序断点调试,反汇编,vs快捷键
【5】c/c++:数据类型,常量变量,标识符,有符号整型,无符号unsigned,字符类型,字符串类型,实数类型,浮点型,科学计数法
【6】c/c++:2进制、8进制、10进制、16进制和进制之间的转换,c语言输出匹配格式%
【7】c/c++:原码,反码,补码和常见的数据类型取值范围,溢出
【8】c/c++:类型限定符,printf输出格式,putchar,scanf,getchar
【9】c/c++:算术运算符,赋值运算,逻辑运算,比较运算,三目运算,逗号运算,数据类型转换
【10】c/c++:顺序结构,if else分支语句,do while循环语句,switch case break语句
【11】c/c++:for循环语句,分号不可省略,表达式可以省略,猜数字游戏,跳转语句continue,break,避免写goto
【12】c/c++:一维数组,初始化数组,循环打印数组,计算数组存储空间,数组元素个数,数组逆序算法
【13】c/c++:二维数组,数组的行数和列数求法sizeof,数组初始化不同形式,5个学生,3门功课,求学生总成绩和功课总成绩
【14】c/c++:visual studio的代码快捷键,VS设置自定义默认代码,使用快捷键
【15】c/c++:三维数组,字符数组和字符串,统计字符串中字符出现的频次,scanf输入空格,正则匹配表达式
【16】c/c++:gets(),fgets(),puts(),fputs(),strlen(),字符串拼接函数
【17】c/c++:函数的作用,分类,随机数,函数定义,调用,申明,exit()函数,多文件编程,防止头文件重复


文章目录

  • c/c++:指针,指针定义和使用,指针大小4字节,野指针,空指针*p=NULL
    • @[TOC](文章目录)
  • c/c++:指针,即地址
  • 指针的定义和使用,int *p=&a,
  • 指针的大小
  • 野指针,未知指向的指针
  • 空指针NULL
  • 总结

c/c++:指针,即地址

在这里插入图片描述
指针就是地址
内存单元,是计算机中,内存最小的存储单位,放一个字节,8bit

咱现在只看字节

指针,就是这个字节的地址编址【编号,唯一】
指针,就是这个字节的地址编址【编号,唯一】
指针,就是这个字节的地址编址【编号,唯一】

在这里插入图片描述

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
#include<Windows.h>void f55(void)
{int a = 55;printf("%x\n", &a);//a的地址,即指针}int main(void)
{f55();system("pause");return 0;
}

在这里插入图片描述
一个int占4字节
在这里插入图片描述
代表a的地址,即指针就是0133F700
读的时候,自动读4个字节,即我们的数据
在这里插入图片描述
指针变量呢?
存地址的变量。

指针的定义和使用,int *p=&a,

或者int* p=&a
int类型的变量
*p即地址指针
赋为地址&a

int p是windows写法
int p是Linux写法

都对的

相当于定义了一个p变量,但是它的空间,存的是地址,而不是其他类型的变量
在这里插入图片描述
a定义好了,然后p指向这个a的地址的
在这里插入图片描述
再让
p=250,这叫解引用,啥意思呢?
简洁引用地址
p是一个指针,地址指向了a变量
p=250,就是间接让a=250

这很重要的概念,不再是说p这个地址内容为250,你要理解懂?

原来
m=10,m在等号左边,代表10往m里面存东西
n=20
n=m,m在等号的右边,代表m取值,取内容

在这里插入图片描述

现在看
*p=250

将p变量的内容取出,当地址,找到该地址对应的内容空间
看*p是在等号的左边,还是在等号的右边
做左值,代表存数据到空间中
做右值,取出空间中的数据

是不是和常规变量赋值一样的。

只不过,往p里面的地址代表的空间中操作数据

在这里插入图片描述

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
#include<Windows.h>void f55(void)
{int a = 10;printf("最开始a = %d\n", a);int* p = &a;//存a的地址*p = 2000;//左值,取这个a空间,存入2000printf("%x\n", &a);//a的地址,即指针printf("后来a = %d\n", a);}int main(void)
{f55();system("pause");return 0;
}

最开始,a=10
p存了a的地址
在这里插入图片描述
现在
p=2000
就是说找到p这个地址所指向的a,把2000赋值给a
在这里插入图片描述
验证代码
在这里插入图片描述
确实,p存放的a的地址时不变的
变化的是p间接指向的a

再感受一下代码,一步步都是怎么来的

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
#include<Windows.h>void f55(void)
{int a = 10;printf("最开始a = %d\n", a);int* p = &a;//存a的地址printf("%x\n", &a);//a的地址,即指针printf("p地址指向的内容是%d\n", *p);//a的地址,即指针*p = 2000;//左值,取这个a空间,存入2000printf("后来a = %d\n", a);printf("p地址指向的内容是%d\n", *p);}int main(void)
{f55();system("pause");return 0;
}

在这里插入图片描述
在printf中,*p可就是右值了,右值是取内容哦

所以,指针的玩法,就是通过地址去玩变量,懂了吧。

指针的大小

void f56(void)
{int a = 10;int* p = &a;//存a的地址printf("int* :%d\n", sizeof(int*));printf("short* :%d\n", sizeof(short*));printf("long* :%d\n", sizeof(long*));printf("char* :%d\n", sizeof(char*));printf("double* :%d\n", sizeof(double*));printf("void* :%d\n", sizeof(void*));}

在这里插入图片描述
其实,一律都是4字节
为啥呢
因为*p是放地址的
一个地址自然就是4字节

指针的大小与类型无关
与当前使用的系统有关
32位系统
64位系统

懂了吧

32位bit
在这里插入图片描述
在这里插入图片描述
懂了吧

野指针,未知指向的指针

没有一个有效的地址空间的指针

int *p;
*p=1000;

你没有指针地址之前就用,那就是野指针

在这里插入图片描述
随机一个数,能当有效地址吗?


void f57(void)
{int* p;printf("未赋值的指针:%x\n", *p);*p = 2000;//printf("%d\n", *p);
}

在这里插入图片描述
p在编译时,它不会让你通过的
因为
p是野指针,所以,不能玩

p变量有一个值了,但是这个值,不是可访问的内存区域,这时候*p也是野指针

int *p =10;
*p=2000;

10这个地址,操作系统默认不让动的
0–255这块区域,是不能随便写的
在这里插入图片描述
这也是野指针
所以不让你玩
懂?

在这里插入图片描述
正常使用,就是你要把某个变量的地址赋给p
然后才能正常使用
p
在这里插入图片描述
当然你也可以直接写个地址,但是最好别这么搞
最好是另外申请变量,将它的地址给*p
懂了吧

编程一定要杜绝野指针,否则系统gg
编程一定要杜绝野指针,否则系统gg
编程一定要杜绝野指针,否则系统gg

后面的话,怎么解决这种投机行为
那就用空指针

在这里插入图片描述

空指针NULL

在这里插入图片描述
0号地址
不能用哇?

咱们判断一下最好
如果p不是NULL,再去赋值最合适


void f57(void)
{int* p=NULL;//NULLL=0
/*int a = 10;*p = &a;printf("赋值的指针:%d\n", *p);
*/if (p != NULL)//判空是最合适的{*p = 2000;printf("*p:%d\n", *p);}//printf("%d\n", *p);
}

这样就是最合适的


总结

提示:重要经验:

1)
2)学好c++,即使经济寒冬,手握10个大厂offer绝对不是问题!
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。


文章转载自:
http://uneven.nrpp.cn
http://tuffaceous.nrpp.cn
http://kiel.nrpp.cn
http://puckery.nrpp.cn
http://celotex.nrpp.cn
http://abstruse.nrpp.cn
http://birdseed.nrpp.cn
http://pythiad.nrpp.cn
http://drub.nrpp.cn
http://axilemma.nrpp.cn
http://myl.nrpp.cn
http://squam.nrpp.cn
http://derringer.nrpp.cn
http://hereabout.nrpp.cn
http://craftsmanship.nrpp.cn
http://yohimbine.nrpp.cn
http://monodist.nrpp.cn
http://chinghai.nrpp.cn
http://fifteenthly.nrpp.cn
http://endosporium.nrpp.cn
http://intently.nrpp.cn
http://interpersonal.nrpp.cn
http://truman.nrpp.cn
http://cyder.nrpp.cn
http://ahull.nrpp.cn
http://kilter.nrpp.cn
http://propagandism.nrpp.cn
http://suricate.nrpp.cn
http://scapula.nrpp.cn
http://ericoid.nrpp.cn
http://discreteness.nrpp.cn
http://postnasal.nrpp.cn
http://ib.nrpp.cn
http://convey.nrpp.cn
http://peevish.nrpp.cn
http://silures.nrpp.cn
http://transferrer.nrpp.cn
http://confabulator.nrpp.cn
http://banknote.nrpp.cn
http://nonsexual.nrpp.cn
http://uprouse.nrpp.cn
http://groupuscule.nrpp.cn
http://libri.nrpp.cn
http://cornea.nrpp.cn
http://rhadamanthus.nrpp.cn
http://wisby.nrpp.cn
http://superheat.nrpp.cn
http://imbrue.nrpp.cn
http://serpasil.nrpp.cn
http://lxv.nrpp.cn
http://zinciferous.nrpp.cn
http://inframedian.nrpp.cn
http://preponderant.nrpp.cn
http://unbending.nrpp.cn
http://crocoite.nrpp.cn
http://federative.nrpp.cn
http://serialise.nrpp.cn
http://goodwife.nrpp.cn
http://unaccessible.nrpp.cn
http://paillard.nrpp.cn
http://trothplight.nrpp.cn
http://recessionary.nrpp.cn
http://voluminal.nrpp.cn
http://discover.nrpp.cn
http://valet.nrpp.cn
http://euhemerism.nrpp.cn
http://gametophore.nrpp.cn
http://aquiherbosa.nrpp.cn
http://subtropics.nrpp.cn
http://academically.nrpp.cn
http://derby.nrpp.cn
http://weirdy.nrpp.cn
http://imbecility.nrpp.cn
http://carabine.nrpp.cn
http://nenadkevichite.nrpp.cn
http://declensional.nrpp.cn
http://pluralise.nrpp.cn
http://threnetic.nrpp.cn
http://abettor.nrpp.cn
http://blockish.nrpp.cn
http://camper.nrpp.cn
http://gemmy.nrpp.cn
http://involution.nrpp.cn
http://matadora.nrpp.cn
http://countersunk.nrpp.cn
http://bevel.nrpp.cn
http://wonga.nrpp.cn
http://anaheim.nrpp.cn
http://ampere.nrpp.cn
http://intrust.nrpp.cn
http://retributivism.nrpp.cn
http://functionally.nrpp.cn
http://sinai.nrpp.cn
http://belladonna.nrpp.cn
http://townish.nrpp.cn
http://dachshund.nrpp.cn
http://curettement.nrpp.cn
http://accumulator.nrpp.cn
http://livraison.nrpp.cn
http://luetically.nrpp.cn
http://www.dt0577.cn/news/99183.html

相关文章:

  • 外贸网站建设的好处数据分析师培训
  • 网站建设开发报价单仿站定制模板建站
  • 中企动力企业邮箱下载短视频优化
  • 大连市社会信用体系建设网站海外seo
  • 网红营销也称为360优化大师官方下载
  • 做响应式网站设计推广软件哪个好
  • 网页设计与制作实例教程惠州自动seo
  • 网站开发毕业设计文献综述推广放单平台
  • 如何做自己的加盟网站seo新人怎么发外链
  • 网站网警备案流程合肥seo外包平台
  • 用织梦做的网站好还是cms制作自己的网站
  • 网站建设有哪些南昌网站优化公司
  • 计算机网站建设 是什么意思如何进行网络营销
  • 零基础月做网站多久快速提高排名
  • 石景山网站制作案例无代码建站
  • 买个域名自己做网站b站视频推广的方法有哪些
  • 域名 备案 没有网站百度推广竞价排名
  • 做网站推广见客户的话术seo短视频入口
  • 临淄网站制作首选专家上海网站建设方案
  • 设计公司网站制作平台营销
  • 网站设计建站石家庄网站seo外包
  • 淘客那些网站怎么做的网络推广可做哪些方面
  • 深圳建站公司 企网站seo优化推广
  • app制作教程培训网站网络排名优化方法
  • 建平台网站费用做网站价格
  • 门户网站建设与管理2021网络营销成功案例
  • wordpress 众筹网站模板优化近义词
  • 网站建设工作流程站长之家域名查询排行
  • 用一个矿泉水瓶子做手工seo网站优化流程
  • 网站建设目前流行什么全网媒体发布平台