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

网站建设代码编译的问题及解决方案天元建设集团有限公司第六分公司

网站建设代码编译的问题及解决方案,天元建设集团有限公司第六分公司,成都业务网络推广平台,我要自学网网站建设与管理C语言入门课程学习笔记9 第41课 - 指针#xff1a;一种特殊的变量实验-指针的使用小结 第42课 - 深入理解指针与地址实验-指针的类型实验实验小结 第43课 - 指针与数组#xff08;上#xff09;实验小结 第44课 - 指针与数组#xff08;下#xff09;实验实验小结 第45课 … C语言入门课程学习笔记9 第41课 - 指针一种特殊的变量实验-指针的使用小结 第42课 - 深入理解指针与地址实验-指针的类型实验实验小结 第43课 - 指针与数组上实验小结 第44课 - 指针与数组下实验实验小结 第45课 - 指针与函数实验实验小结 第46课 - 指针与堆空间实验实验小结 第47课 - 指针专题经典问题剖析小结 第41课 - 指针一种特殊的变量 实验-指针的使用 #include stdio.hint main() {int var 0;int another 0;int* pVar NULL;printf(1. var %d\n, var);printf(1. pVar %p\n, pVar);pVar var; // 使用指针保存变量的地址*pVar 100; // *pVar 等价于 var var 100;printf(2. var %d\n, var);printf(2. pVar %p\n, pVar);pVar another; // 改变了 pVar 的指向使得 pVar 保存 another 的地址*pVar 1000; // another 1000;printf(3. another %d\n, another);printf(3. pVar %p\n, pVar);printf(4. add %d\n, var another *pVar); // 100 1000 1000 2100return 0; } /* 1. var 0 1. pVar 0000000000000000 2. var 100 2. pVar 000000000061FE14 3. another 1000 3. pVar 000000000061FE10 4. add 2100 */ 小结 第42课 - 深入理解指针与地址 实验-指针的类型 #include stdio.hint main() {int i 10;float f 10;int* pi f; // WARNING int* 指向了floatfloat* pf f; // OKprintf(pi %p, pf %p\n, pi, pf);printf(*pi %d, *pf %f\n, *pi, *pf);pi i; // WARNING *pi 110; // OOPSprintf(pi %p, *pi %d\n, pi, *pi);return 0; } 实验 #include stdio.hint calculate(int n, long long* pa, long long* pm) {int ret 1;if( (1 n) (n 20) ){int i 0;*pa 0;*pm 1;for(i1; in; i)// 01...n{ //1*1*...*n*pa *pa i;*pm *pm * i;}}else{ret 0;}return ret; }int main() {long long ar 0;long long mr 0;if( calculate(5, ar, mr) )printf(ar %lld, mr %lld\n, ar, mr);//15 1*2*3*4*5120return 0; } 实验 #include stdio.hvoid func(int* p) {*p 100; // 修改内存中 4 字节的数据即修改一个整型变量的值 }void swap(int* pa, int* pb)//通过指针交换变量 {int t 0;t *pa;*pa *pb;*pb t; }int main() {int var 0;int a 1, b 2;printf(1. var %d\n, var);func( var );printf(2. var %d\n, var);//100printf(3. a %d, b %d\n, a, b);swap(a, b);printf(4. a %d, b %d\n, a, b);return 0; } 小结 第43课 - 指针与数组上 实验 #include stdio.hint main() {int a[] {1, 2, 3, 4, 0};int* p a; // a 的类型为 int*, a[0] int*int (*pa) [5] a;//指向数组的指针 注意指针类型printf(%p, %p\n, p, a);p;//p1 p1*sizeof(p)*p 100; // a[1] 100;printf(%d, %d\n, *p, a[1]);printf(%p, %p\n, a, a);//????值一样 但是意思不一样数组的地址 数组首元素的地址p pa; // WARNING !!!! warning: assignment to int * from incompatible pointer type int (*)[5] p a;while( *p ){printf(%d\n, *p);p;}return 0; } /* 000000000061FDF0, 000000000061FDF0 100, 100 000000000061FDF0, 000000000061FDF0 1 100 3 4 */ 小结 第44课 - 指针与数组下 实验 #include stdio.hint main() {int a[] {1, 2, 3, 4, 5};int* p a;int i 0;// a[i] *(ai) *(pi) p[i]for(i0; i5; i){printf(%d, %d\n, a[i], *(a i));}for(i0; i5; i){printf(%d, %d\n, a[i], p[i]);}for(i0; i5; i){printf(%d, %d\n, p[i], *(p i));}printf(a %p, p %p\n, a, p);//值相同printf(a %p, p %p\n, a, p);//值不同return 0; } 实验 #include stdio.hint main() {int a[] {1, 2, 3};int* p a;int v *p;//int v*p,p;char* s NULL;printf(%p\n, D.T.Software);printf(%p\n, D.T.Software);printf(v %d, *p %d\n, v, *p);printf(First %c\n, *D.T.Software);s D.T.Software;while( *s ) printf(%c, *s);printf(\n);return 0; } /* 0000000000404000 0000000000404000 v 1, *p 2 First D D.T.Software */ 小结 第45课 - 指针与函数 实验 #include stdio.hint add(int a, int b) {return a b; }int mul(int a, int b) {return a * b; }int calculate(int a[], int len, int(*cal)(int, int)) {int ret a[0];int i 0;for(i1; ilen; i){ret cal(ret, a[i]);}return ret; }int main() {int a[] {1, 2, 3, 4, 5};int (*pFunc) (int, int) NULL;pFunc add;printf(%d\n, pFunc(1, 2));//3printf(%d\n, (*pFunc)(3, 4));//7pFunc mul;printf(%d\n, pFunc(5, 6));//30printf(%d\n, (*pFunc)(7, 8));//56printf(1 ... 5 %d\n, calculate(a, 5, add));//15printf(1 * ... * 5 %d\n, calculate(a, 5, mul));//120return 0; } 实验 #include stdio.hint demo(int arr[], int len) // int demo(int* arr, int len)//数组求和 {int ret 0;int i 0;printf(demo: sizeof(arr) %d\n, sizeof(arr));// 8 退化为指针了while( i len ){ret *arr;i;}return ret; }int main() {int a[] {1, 2, 3, 4, 5};// int v *a;printf(return value: %d\n, demo(a, 5));//return 0; } 小结 第46课 - 指针与堆空间 实验 #include stdio.hint main() {char c 0;int i 0;float f 2.0f;double d 3.0;void* p NULL;double* pd NULL;int* pi NULL;/* void* 指针可以保存任意类型的地址 */p c;p i;p f;p d;printf(%p\n, p);// void* 类型的指针无法访问内存中的数据// printf(%f\n, *p);/* void* 类型的变量可以直接合法的赋值给其他具体数据类型的指针变量 */pd p;pi p;// void* 是例外其他指针类型的变量不能相互赋值// pd pi;return 0; } 实验 #include stdio.h #include stdlib.hint main() {int* p malloc(4); // 从堆空间申请 4 个字节当作 int 类型的变量使用if( p ! NULL ) // 如果申请失败 p 为 0 即空值{*p 100;printf(%d\n, *p);//100free(p);}p malloc(4 * sizeof(int));if( p ! NULL ){int i 0;for(i0; i4; i){p[i] i * 10;}for(i0; i4; i){printf(%d\n, p[i]);}free(p);}return 0; } /* 100 0 10 20 30 */ 小结 第47课 - 指针专题经典问题剖析 #include stdio.h #include stdlib.hint main() {int a 0;int b 1;int* p a; //p指向aint** pp p;//pp指向p**pp 2; // a 2;*pp b; // p b; *p 3; // b 3;printf(a %d, b %d\n, a, b);return 0; }#include stdio.h #include stdlib.hint main() {int a[] {1, 2, 3, 4};int* pa a;int b[2][2] {{1, 2}, {3, 4}};// int** pb b; // b 的类型绝对不是 int** warning: initialization of int ** from incompatible pointer type int (*)[2]int (*pnb) [2] b; // b 的类型是 int(*)[2]printf(a %p, pa %p\n, a, pa);// printf(b %p, pb %p\n, b, pb);printf(b %p, pnb %p\n, b, pnb);return 0; } /* a 000000000061FE00, pa 000000000061FE00 b 000000000061FDF0, pnb 000000000061FDF0 */ #include stdio.h #include stdlib.hint getDouble(double** pp, unsigned n) {int ret 0;double* pd malloc(sizeof(double) * n);if( pd ! NULL ){printf(pd %p\n, pd);*pp pd;ret 1;}return ret; }int main() {double* p NULL;if( getDouble(p, 5) ){printf(p %p\n, p);free(p);}return 0; } /* pd 00000000006E5CB0 p 00000000006E5CB0 */ #include stdio.h #include stdlib.hint main() {int b[2][2] {{1, 2}, {3, 4}};int (*pnb) [2] b; // b 的类型是 int(*)[2]*pnb[0] 10;//*(pnb[0])*pnb[1] 30;printf(b[0][0] %d\n, b[0][0]);printf(b[0][1] %d\n, b[0][1]);//30printf(b[1][0] %d\n, b[1][0]);printf(b[1][1] %d\n, b[1][1]);return 0; } /* b[0][0] 10 b[0][1] 2 b[1][0] 30 b[1][1] 4 */ #include stdio.h #include stdlib.hint main() {int b[2][2] {{1, 2}, {3, 4}};int (*pnb) [2] b; // b 的类型是 int(*)[2]*pnb[0] 10; int * kpnb[0] 1;//?? pnb[0] sizeof(*pnb[0])对了 *k 20;// *pnb[1] 30; printf(sizeof(pnb) %d\n, sizeof(pnb)); printf(sizeof(pnb[0]) %d\n, sizeof(pnb[0])); printf(sizeof(*pnb) %d\n, sizeof(*pnb)); printf(sizeof(*pnb[0]) %d\n, sizeof(*pnb[0])); printf(pnb%p\n,pnb); printf(pnb[0]%p\n,pnb[0]); printf(pnb[0]1%p\n,pnb[0]1);printf(sizeof(b) %d\n, sizeof(b)); printf(sizeof(int[2]) %d\n, sizeof(int[2]));printf(b[0][0] %d\n, b[0][0]);printf(b[0][1] %d\n, b[0][1]);//30printf(b[1][0] %d\n, b[1][0]);printf(b[1][1] %d\n, b[1][1]);return 0; } /* sizeof(pnb) 8 sizeof(pnb[0]) 8 sizeof(*pnb) 8 sizeof(*pnb[0]) 4 pnb000000000061FE00 pnb[0]000000000061FE00 pnb[0]1000000000061FE04 sizeof(b) 16 sizeof(int[2]) 8 b[0][0] 10 b[0][1] 20 b[1][0] 3 b[1][1] 4 */ #include stdio.h #include stdlib.hint* func() {int var 100;return var; }int main() {int* p func(); // OOPS!!!!// p 指向了不合法的地址这个地址处没有变量存在// p 是一个野指针保存不合法地址的指针都是野指针printf(*p %d\n, *p);*p 200; // 改变 func 函数中局部变量 var 的值是不是非常奇怪printf(*p %d\n, *p);return 0; }小结
http://www.pierceye.com/news/158768/

相关文章:

  • 永州内部网站建设公司wordpress 模版开发
  • 云建站优势门户网站如何建设方案
  • 网站建设收费标准不一湖州网站开发公司
  • asp制作网站青岛建网站公司
  • 人人商城程序做的网站打不开百度网盘客户端下载
  • 医疗器械注册证查询网站优化推广服务
  • 网站制作网页做简单的网站首页
  • 怎样做网站上的语种链接泰安网络犯罪案件
  • soap公司网站建设国家游戏网站
  • 网站可以用什么做安阳区号是什么
  • 网站建设实战李静如何建设网站的能力
  • 威海 网站开发做家具的网站有哪些
  • 宁波网站建设公司怎么报价网页打开速度慢的解决方法
  • 有趣的网站有哪些推荐关键词没有排名的网站怎么做
  • 昆山网站制作哪家强海淀区企业网络公司
  • 北京网站制建设公司永兴县网站建设服务商
  • 嘉兴做网站优化公司江阴网站优化公司
  • dz可以做旅游网站吗wordpress 4.1.1 漏洞
  • 谷歌网站地图生成福州便民网免费发布信息
  • 最新军事战争新闻超级优化大师
  • 好的网站建设公司排名网站建设 交易保障
  • 怎么查看网站外链效果代理注册公司有什么风险
  • 西安网站漏洞免费自动生成小程序
  • 怎么修改网站信息同ip网站做301
  • 松江品划网络做网站logo设计网页
  • 重庆博达建设集团股份有限公司网站徐州建设企业网站
  • 有没有专门做老年婚介的网站东营会计信息网官网
  • 鞍山怎么做平台软件汕头网站时优化
  • 邹城建网站深圳装修公司排行榜
  • 泊头网站优化WordPress如何添加cnzz