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

民非企业网站建设费怎么记账怎样上传网站程序

民非企业网站建设费怎么记账,怎样上传网站程序,手机网站做的比较好的,江西省建设部网站一、细说指针 指针是一个特殊的变量#xff0c;它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容#xff1a; 指针的类型指针所指向的类型指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。 1、指针的类型 从语法的角度…一、细说指针 指针是一个特殊的变量它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容 指针的类型指针所指向的类型指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。 1、指针的类型 从语法的角度看你只要把指针声明语句里的指针名字去掉剩下的部分就是这个指针的类型。 (1)int *ptr; // 指针的类型是 int* (2)char *ptr; // 指针的类型是 char* (3)int **ptr; // 指针的类型是 int** (4)int (*ptr)[3];// 指针的类型是 int(*)[3] (5)int *(*ptr)[4];// 指针的类型是 int*(*)[4]2、指针指向的类型 当你通过指针来访问指针所指向的内存区时指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。 从语法上看你只须把指针声明语句中的指针名字和名字左边的指针声明符 *去掉剩下的就是指针所指向的类型。 (1)int *ptr; // 指针所指向的类型是 int (2)char *ptr; // 指针所指向的的类型是 char (3)int **ptr; // 指针所指向的的类型是 int* (4)int (*ptr)[3]; // 指针所指向的的类型是 int()[3] (5)int *(*ptr)[4]; // 指针所指向的的类型是 int*()[4]3、指针的值指针所指向的内存区或地址 指针的值是指针本身存储的数值这个值将被编译器当作一个地址而不是一个一般的数值。在 32 位程序里所有类型的指针的值都是一个32 位整数因为 32 位程序里内存地址全都是 32 位长。 指针所指向的内存区就是从指针的值所代表的那个内存地址开始长度为 sizeof(指针所指向的类型) 的一片内存区。 4、指针本身所占据的内存区 指针本身占了多大的内存你只要用函数sizeof(指针的类型)测一下就知道了。在32 位平台里指针本身占据了4 个字节的长度。指针本身占据的内存这个概念在判断一个指针表达式后面会解释是否是左值时很有用。 二、指针的算术运算 指针的算术运算和通常的数值的加减运算的意义是不一样的指针的运算是以单元为单位进行的。 char a[20]; int *ptr(int *)a; //强制类型转换并不会改变 a 的类型 ptr; 在上例中指针 ptr 的类型是int*,它指向的类型是int它被初始化为指向整型变量 a。 ptr 把指针 ptr 的值加上了 sizeof(int)在 32 位程序中是被加上了 4因为在32 位程序中int 占 4 个字节。 由于地址是用字节做单位的故 ptr 所指向的地址由原来的 变量a 的地址向高地址方向增加了4 个字节。 由于char 类型的长度是一个字节所以原来 ptr 是指向数组a的第0号单元开始的四个字节此时指向了数组a中从第4号单元开始的四个字节。 我们可以用一个指针和一个循环来遍历一个数组看例子 int array[20]{0}; int *ptr array; for(i0;i20;i) { (*ptr); ptr } 这个例子将整型数组中各个单元的值加1。由于每次循环都将指针ptr加1 个单元所以每次循环都能访问数组的下一个单元。 三、运算符和* 是取址符*是间接运算符。 a 的运算结果是一个指针指针的类型是 a 的类型加个*指针所指向的类型是 a 的类型指针所指向的地址是 a 的地址。 *p 的结果是 p 所指向的东西 int a12; int b; int *p; int **ptr; pa; //a 的结果是一个指针类型是int*指向的类型是int指向的地址是a 的地址。 *p24; //*p 的结果在这里它的类型是int它所占用的地址是p所指向的地址显然*p就是变量a。 ptrp; //p 的结果是个指针该指针的类型是p 的类型加个* 在这里是int **。该指针所指向的类型是p 的类型这里是int*。该指针所指向的地址就是指针p 自己的地址。 *ptrb; //*ptr 是个指针b 的结果也是个指针且这两个指针的类型和所指向的类型是一样的所以用b 来给*ptr 赋 值就是毫无问题的了。 **ptr34; // *ptr 的结果是 ptr 所指向的东西在这里是一个指针对这个指针再做一次*运算结果是一个 int 类型的变量。 四、指针和数组 数组的数组名其实可以看作一个指针。 int array[10]{0,1,2,3,4,5,6,7,8,9},value; value array[0]; //也可写成value*array; value array[3]; //也可写成value*(array3); int *pa array; *pa; //访问了第0 号单元 *(pa1); //访问了第1 号单元 上例中一般而言数组名 array 代表数组本身类型是int[10]但如果把 array 看做指针的话它指向数组的第 0 个单元类型是 int* 所指向的类型是数组单元的类型即 int。 int array[10]; int (*ptr)[10]; ptr array;上例中 ptr 是一个指针它的类型是int(*)[10]指向的类型是int[10]我们用整个数组的首地址来初始化它。在语句 ptrarray 中array 代表数组本身。 五、指针和结构体 可以声明一个指向结构类型对象的指针。 struct MyStruct { int a; int b; int c; }; struct MyStruct ss{20,30,40}; struct MyStruct *ptrss; 声明了一个指向结构对象ss 的指针。 请通过指针ptr 来访问ss 的三个成员变量 ptr-a; //指向运算符或者可以这们(*ptr).a,建议使用前者 ptr-b; ptr-c;六、指针和函数 可以把一个指针声明成为一个指向函数的指针。 int fun1(char *,int); int (*pfun1)(char *,int); pfun1 fun1; int a (*pfun1)(abcdefg,7); //通过函数指针调用函数。可以把指针作为函数的形参。 在函数调用语句中可以用指针表达式来作为实参。 int fun(char *); int a; char str[]abcdefghijklmn; a fun(str); int fun(char *s) { int num0; for(int i0;;) { num*s;s; } return num; } 这个例子中的函数 fun 统计一个字符串中各个字符的 ASCII 码值之和。 七、指针类型转换 当我们初始化一个指针或给一个指针赋值时赋值号的左边是一个指针赋值号的右边是一个指针表达式。在我们前面所举的例子中绝大多数情况下指针的类型和指针表达式的类型是一样的指针所指向的类型和指针表达式所指向的类型是一样的。 float f 12.3; float *fptr f; int *p (int*)f; // 不能直接赋值要经过类型强转这样强制类型转换的结果是一个新指针该新指针的类型是 TYPE *它指向的类型是 TYPE它指向的地址就是原指针指向的地址。而原来的指针p 的一切属性都没有被修改。切记 利用强转我们还可以把指针的值当作一个整数取出来也可以把一个整数值当作地址赋给一个指针。 八、指针的安全问题 char sa; int *ptr; ptr(int *)s; *ptr1298指针 ptr 是一个int*类型的指针它指向的类型是int。它指向的地址就是 s 的首地址。在 32 位程序中s 占一个字节int 类型占四个字节。 最后一条语句不但改变了 s 所占的一个字节还把和 s 相临的高地址方向的三个字节也改变了。 九、简答的指针例子 一个类型里会出现很多运算符他们也像普通的表达式一样有优先级。 其优先级和运算优先级一样。所以我总结了一下其原则从变量名处起根据运算符优先级结合一步一步分析。 1这是一个普通的整型变量 int p; 2首先从 P 处开始,先与 * 结合所以说明 P 是一个指针。然后再与 int 结合说明 P 所指向的类型为int。所以 P 是一个 指向整型数据的指针 int *p; 3首先从 P 处开始,先与 [] 结合说明 P 是一个数组然后与 int 结合说明数组里的元素是整型的所以 P 是一个由整型数据组成的数组 int p[3];4首先从 P 处开始,先与 [] 结合因为其优先级比 * 高所以 P 是一个数组。然后再与 * 结合说明数组里的元素类型是指针然后再与 int 结合说明 P 是一个由型数指针所组成的数组 int *p[3]; 5首先从 P 处开始先与 * 结合说明 P 是一个指针。然后再与 [] 结合说明 P 所指向的内容是一个数组然后再与 int 结合说明数组里的元素类型是整型。所以 P 是一个整型数据组成的数组的指针 。 int (*p)[3];6首先从 P 开始先与 * 结合说是 P 是一个指针。然后再与 * 结合说明 P 所指向的类型也是指针。然后再与 int 结合说明 P 指向的元素是指向int类型的指针。 int **p;7从 P 处起,先与 () 结合说明 P 是一个函数然后进入 () 里分析说明该函数有一个整型变量的参数。然后再与外面的 int 结合说明函数的返回值是一个整型数据 。 int p(int); 8从 P 处开始,先与指针结合说明P 是一个指针然后与()结合说明 P 指向的是一个函数。然后再与 () 里的 int 结合说明函数有一个 int 型的参数,再与最外层的int 结合说明函数的返回类型是整型。所以 P 是一个指向有一个整型参数且返回类型为整型的函数的指针 int (*p)(int); 可以先跳过不看这个类型。从 P 开始,先与()结合说明P 是一个函数然后进入 () 里面与 int 结合说明函数有一个整型变量参数。 然后再与外面的*结合说明函数返回的是一个指针。然后到最外面一层先与[]结合,说明返回的指针指向的是一个数组。 然后再与*结合说明数组里的元素是指针,然后再与int 结合,说明指针指向的内容是整型数据.所以P 是一个参数为一个整数据且返回一个指向由整型指针变量组成的数组的指针变量的函数. int *(*p(int))[3];
http://www.dnsts.com.cn/news/24052.html

相关文章:

  • 站长工具排行榜个人简历样本
  • 建设网站素材设计狮官网
  • 手机端网站自动弹出营销qq四川住房城乡建设厅官网
  • 企业网站建立公司php+mysql 网站建设
  • 东莞专业的网站设计价格现在做网站建设的公司多么
  • 网站开发需要哪些部门wordpress排行榜插件
  • 做网站时如何写接口文档怎么做律所的官方网站
  • 企业网站制作建设室内设计师怎么考证
  • 建站做网站网站页面制作
  • 重庆网站建设沛宣网站播放功能难做吗
  • 嘉兴网站优化排名房地产网站建设哪家有效果
  • asp 茶叶网站模板珠宝网站源码
  • 做蛋白go分析网站青海旅游的网站建设
  • 山西建设行政主管部门官方网站网站用户体验度
  • 在线推广是网站推广wordpress好看的页面跳转
  • 网站建设哪家做的好小程序介绍内容怎么写
  • 网站主办者是什么意思长沙企业100强名单
  • 这几年做那些网站致富网站建设实验分析总结
  • 工商营业执照注册网站建一个大型网站需要多少钱
  • 河南网站seo设计做网站商城前景怎么样
  • seo北京网站推广网址大全4399
  • 永康市网站建设制作企业信息查询官网入口
  • 网站建设 会员可以看的内容更多wordpress直接连接数据库
  • 网站查询域名访问前端网站论文
  • 天台城乡规划建设局网站制作一个网页要多少钱
  • 素材下载网站开发文档如何攻克网站
  • 网站建设简单合同单页网站如何做排名
  • 做资料分享网站网络维护协议
  • 信息公司网站建设方案 游戏杭州视频网站建设
  • 网站建立的步骤是( )。模具配件东莞网站建设技术支持