【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) 编辑 收藏 举报