【c学习-9】

/*内存练习*/ #include #include//引入内存分配库文件 int main(){ double* x; //定义整型指针和double指针 int* y; x=(double*)malloc(sizeof(x));//为double分配空间 printf("%d\n",sizeof(*x)); y=realloc((x),sizeof(int)); //重新为double分配空间为int printf("%d\n",sizeof(*y)); } /*内存练习*/ #include #include //引入内存分配库文件 int main(){ int i; //计数器 int* parray; //整型指针变量 parray=(int*)calloc(3,sizeof(int));//调用动态分配函数为指针数组赋予多个值 //循环为指针赋值 for(i=0;i<4;i++){ *parray=10*i; printf("%d\n",i,*parray); parray+i; //移动指针 } return 0; /*int *p=(int*)malloc(sizeof(int)); //调用动态分配函数 *p=100; //为分配到的指针赋予空间 printf("%d",*p); return 0; */ /* int *PInt; //定义指针 PInt=(int*)malloc(sizeof(int));//动态分配内存 *PInt=100; printf("%d\n",*PInt); free(PInt); //释放内存 printf("%d\n",*PInt); //return 0; */ } /*预定义指令练习*/ #include #define PWD 1 int main(){ char *p="hello world";//定义字符型指针 //引用预定义指令 #if PWD printf("******\n"); #else printf("%s\n",p); #endif } /*内存练习*/ #include #include//引入内存分配库文件 int main(){ double* x; //定义整型指针和double指针 int* y; x=(double*)malloc(sizeof(x));//为double分配空间 printf("%d\n",sizeof(*x)); y=realloc((x),sizeof(int)); //重新为double分配空间为int printf("%d\n",sizeof(*y)); } /*内存练习*/ #include #include int main(){ int* p; int i; p=(int*)malloc(sizeof(int[3]));//为数组分配空间 for(i=0;i<3;i++){ *(p+i)=10*(i+1); printf("%d\n",*p+i); } return 0; } /* double a; printf("%d\n",sizeof(a)); int* PInt;//整型指针 PInt=(int*)malloc(sizeof(PInt));//分配空间 *PInt=10; printf("%d\n",*PInt); free(PInt); //释放空间 printf("%d\n",*PInt); return 0; */ /*内存练习*/ #include #include int main(){ //定义p,q指针,n计数器 int n,*p,*q; //提醒输入n的值 printf("请输入n:\n"); scanf("%d",&n); //赋值q指针内存空间 p=(int *)malloc(sizeof(n,2)); //循环输出分配的内存空间 for(q=p;q #include int main(){ //定义商品结构体 struct shop{ char *name; int num; double money; }*pay; //定义结构体变量 //为结构体变量分配内存 pay=(struct shop*)malloc(sizeof(struct shop )); //初始化结构体成员的值 pay->name="食用油"; pay->num=3; pay->money=300; printf("name:%s\nnum:%d\nmoney:%lf\n", pay->name,pay->num,pay->money ); return 0; } /*链表练习*/ #include //定义结构体 struct student{ int score; int age; struct student *pnext; //指向下一个节点 }; int main(){ struct student stu1, stu2,*head,*p; //定义结构体变量 //初始化结构体变量 stu1.score=100; stu2.age=18; stu2.score=60; stu1.age=20; head=&stu1; //定义头指针 p=head; stu1.pnext=&stu2; stu2.pnext=NULL; do{ printf("score:%s\nage:%d\n",p->score,p->age); p=p->pnext; }while(p!=NULL); return 0; } /*栈练习*/ #include void displayFunctionA(char* string){ printf("%s\n",string); } void displayFunctionB(char* string){ //调用displayFunctionA char String[10]="hello world"; printf("请输入str的值:\n",String); // scanf("%s",&string); displayFunctionA(string); } int main(){ char string[10]="hello zhan"; displayFunctionB(string); return 0; } /*与和或,取反运算*/ #include int main(){ //定义整型变量 int a,b,c,z; printf("请输入a的值:\n"); scanf("%d",&a); printf("请输入b的值:\n"); scanf("%d",&b); c=a&b; z=a|b; printf("a与b的结果:%d\n取反结果为:%d\n",c,~c); printf("a或b的值是:%d\n异或的结果是:%d\n" ,z,a^b); } /*左移,右移运算符*/ #include int main(){ //定义整型变量 int a=10,b=1000000; //scanf("%d") a=a<<2; //printf(") printf("firset左移a的值:%d\n",a); a=a<<5; //再次输出左移a的值 printf("second左移a的值:%d\n",a); //右移b b=b>>2; printf("右移b的值:%d\n",b); } /*循环位移练习*/ #include //定义位移函数 int left(int value,int n){ //定义两个形参 int z; //执行位移操作 z=(value>>(32-n))|(value< int main(){ //定义整型变量 int a,b; //接受输入 printf("请输入a的值:\n"); scanf("%d",&a); printf("请输入b的值:\n"); scanf("%d",&b); //对未异或的a,b输出 printf("a:%d\nb:%d\n",a,b); //进行异或运算 a=a^b; b=b^a; a=a^b; // 对异或的a,b输出 printf("a:%d\nb:%d\n",a,b); #include int main(){ //定义两个整型变量 int a,rs; //构造输入一个八进制数 printf("请输入a的值:\n"); scanf("%o",&a); //对rs取后四位为1 rs=~(~0<<4); //对rs和a与运算 printf("%o\n",rs&a); } }

posted on 2018-08-22 14:11  activecode  阅读(91)  评论(0编辑  收藏  举报

导航