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

深圳市做网站前十强潍坊有哪些网站

深圳市做网站前十强,潍坊有哪些网站,公司网站建设合同需要交印花税,百度集团网站建设方案十三:指针变量 一:数据类型 ​ 指针类型---------对应处理的数据是指针 (地址)这种数据 ​ 整型类型---------对应处理的数据是整数这种类型 二:定义指针类型的变量 ​ 语法: 基类型(1) *(…

十三:指针+变量

一:数据类型

​ 指针类型---------对应处理的数据是指针 (地址)这种数据

​ 整型类型---------对应处理的数据是整数这种类型

二:定义指针类型的变量

​ 语法: 基类型(1) *(2) 指针变量名(3)

​ (1):代表一个数据类型 //(int/short/long/long long/char/float/double)

​ //表示p中指针指向的"内存空间上的数据类型

​ (2):定义指针变量时,起到修饰(没有*运算)作用 //代表当前定义的不是普通变量,而是一个指针类型的变量

​ (3):标识符 //(符合标识符规则)

​ eg:int *p 表示定义了一个指针类型的变量,p代表一个指针类型的变量,这个变量是要存放 指针类型的数据 (地址/内存单元编号)

int *p = &a //指向了a

​ p的数据类型(去掉标识符剩下的就是其数据类型) ?

​ 答:int* //p的数据类型(指针类型),表示这是指向int型数据的一类指针

三:访问空间的流程

1.通过a-----访问直接访问

2.通过p------访问间接访问(*//指针运算) *运算数:必须是一个地址 *p -------- 表示对p进行指针运算

运算过程:1.拿出p中的地址值,到内存中定位 //通过p能找到a

​ 2.从定位处开始,向下偏移sizeof(基类型)大小的一块空间

​ 3.将这块空间当做一个基类型数据或变量来看 //相当于是最终运算效果

*p 不单单是可以获取对应空间上的数据,也可以修改效果上,等价于a

	int a = 10;int *p = &a;printf("a = %d\n",a);//a = 10printf("&a = %p\n",&a);//&a = 0x7ffc988db62cprintf("p = %p\n",p);//p = 0x7ffc988db62cprintf("*p = %d\n",*p);//*p = 10//a = 30;*p = 30;//也可以通过指针来修改对应内存空间的值printf("a = %d\n",a);//a = 30printf("*p = %d\n",*p);//*p = 30

3.类型问题?

	int a = 0x12345678;short *p = &a;//能放的下short *p = (short *)&a;//强制类型转换,和上是一样的,只是为了消除警告printf("*p = %#X\n",*p);//*p = 0X5678,//从定位处开始,向下偏移sizeof(基类型)大小的一块空间

​ a 是int型----------占4个字节—数据0x12345678

​ p short*指针类型-------p要指向的目标类型 是short类型

&a //获得了一个地址值(int*这种类型) 因为我取了一块存放着int型数据的空间的地址 (&a)

*p 64位系统,指针类型为8字节 32位,4字节

int isLitterEdian(void)//判断大小端
{unsigned int a =1;unsigned char *p = (unsigned char *)&a;return *p;
}int main(int argc, const char *argv[])
{(isLitterEdian() == 1)?printf("isLitterEdian\n"):printf("isBigEdian\n");return 0;

四:函数地址传递方式

1.被调修改主调

​ 函数传参时,必须传的是地址

​ 被调函数中,必须有对应的*p(指针间接访问)运算

应该用指针变量作为函数参数,在函数执行过程中使指针变量所指向的变量值发生变化,函数调用结束后,这些变量值的变化依然保留下来,

int addOne(int *n)
{*n = *n + 1;return *n;
}int main()int a = 0;scanf("%d",&a);printf("a = %d\n",addOne(&a));
void sumAndSub(int a,int b,int *sum,int *sub)
{*sum = a + b;*sub = a - b;
}int main(int argc, const char *argv[])
{int a = 0;int b = 0;int sum,sub;scanf("%d %d",&a,&b);sumAndSub(a,b,&sum,&sub);printf("sum = %d sub = %d\n",sum,sub);

int *ptr1,*ptr2 ptr1=ptr2;

五:NULL

1.NULL-----是一个指针 //0编号指针

#define NULL ((void*)0) void*它的基类型为空(void)

​ //这个语句是将 ptr2 的地址值赋给 ptr1,即 ptr1ptr2 指向同一地址,合法

int *p = NULL;//0	//此时不是野指针,是一个明确的状态(空指针)
int *p;//p中是个随机值,此时p指向的目标空间,不明确		(野指针状态)

十四:指针+数组

一:.指针运算

​ 1.算数运算:

p+1 //表示指向了下一个基类型(相当于跳过了一个基类型))

​ //值的大小上相当于加了一个sizeof(基类型)

p++ //同上

p - q //p和q必须是同一类型的指针 //值的大小表示相差了几个基类型

​ 指针不能做乘除运算

​ 2.关系运算

​ > >= == <= < ! //看的是指针值的关系

二:数组地址

1.只需要知道数组首元素的地址即可

&a[0] //取首元素的地址 //地址值的数据类型是 int *

int* p = &a[0]; //数组名(所代表的值)就是首元素的地址

= a //同上,也是首元素的地址

int*p = a;//指针变量p 指向了数组 a

#include<stdio.h>void printfArr(int *a,int len)
{for(int i=0;i<len;i++){printf("%d ",*(a+i));}putchar('\n');
}int main(int argc, const char *argv[])
{int a[] = {1,2,3,4,5,6,7,8,9,10};int len = sizeof(a)/sizeof(a[0]);printfArr(a,len);return 0;
}

三:指针的迭代

void printfArray(int *begin,int *end)
{while(begin <= end){printf("%d ",*begin);++begin;}putchar('\n');
}int main(int argc, const char *argv[])
{int a[] = {1,2,3,4,5,6,7,8,9,10};printfArray(a,a+10-1);return 0;
}
http://www.dtcms.com/a/513916.html

相关文章:

  • 简要叙述如何规划建设一个企业网站南通市住房和城乡建设厅网站
  • 山东省建设厅网站多少自助建站网站公司
  • 郑州网站优化公司平台seo模拟点击
  • 湖州网站设计公司微慕wordpress插件
  • 教做潮男的网站WordPress编辑器加载慢
  • 企业网站维护报价简约网站设计欣赏
  • 肇庆 网站建设 域联如何在网站申请做co
  • 个人备案网站 论坛项目网站
  • 北京营销型网站建设爱站网自媒体数据
  • 怎么上传视频到公司网站安徽省建设工程专业技术资格评审标准条件
  • 做网站内嵌地图绵阳网站搜索排名
  • 未来做啥网站致富安阳网站公司
  • 网上银行登录成都爱站网seo站长查询工具
  • 网站浏览器不兼容怎么办千万不要学数字媒体技术
  • 百度竞价推广费用网站关键词如何优化
  • 宁波做企业网站公司嘉兴网站制作价格
  • 自己做网站卖别人的机械设备怎么在微商城开店
  • 怎么做一个网站app吗深一网站建设招聘
  • 科技感网站模板网站百度地图怎么做
  • 河北正规网站建设比较wordpress 视频收费
  • 网站备案需要关闭网站吗建什么网站收益比较号
  • 服务器重启后网站打不开网架结构厂家电话
  • 做网站值钱吗机械加工王
  • 计算机多媒体辅助教学网站开发好玩的传奇手游
  • wordpress站群的作用wordpress老提示更新
  • 网站开发经典案例wordpress最快的电商主题
  • 四川网站建设公司 登录一二三类医疗器械目录
  • 帮别人做网站的公司是外包吗阿里云个人网站建设书
  • 网站免费模版厦门企业自助建站
  • 上海网站建设培训承德网站设计