嵌入式linux c语言引用设计

来源:互联网 发布:长三角师资招聘会 网络 编辑:程序博客网 时间:2024/06/15 09:36
未完持续

4.1

csb@csb-ThinkPad-E430c:~/code/c$ catfloat.c

#include

void main()

{

float a;

double b;

a=33333.333333333333333;//float,有效数字7

b=33333.333333333333333;//double,有效位数16

printf("a=%f\nb=%f\n",a,b);

}

csb@csb-ThinkPad-E430c:~/code/c$./float

a=33333.332031

b=33333.333333


字符常量

字符常量只能用单引号括起来,不能用双引号或其他括号

字符常量只能是单个字符不能是字符串

'5'=5


枚举类型

定义枚举变量使其的取值被限定在一个有效范围;

enum name{

所有取值;

};

enum sgp_type{

SGP_QUICK=2,

SGP_READ=9,

SGP_CACHE=19,

SGP_WRITE=64,

};



void swap(int *p1,int *p2)

{

int *temp;

temp=p1;

p1=p2;

p2=temp;

}

指针作为函数参数

函数调用中发送的数据传送是单向的,只能吧实参的值传送给形参,而不能把形参的值反向传送给实参

下面例子具体说明这个问题:

#include

void swap(int *p1,int *p2)

{

int temp;

printf("swap:\naddr:p1=%p,p2=%p\n",p1,p2);

temp=(*p1);

*p1=*p2; *p2=temp;

printf("addr:temp=%p,p1=%p,p2=%p\n",&temp,&(*p1),&(*p2));//p1,p2指向的地址没改变,指向地址的内容变了

}

void swap1(int *p1,int *p2)

{

int *temp;

printf("swap1\naddr:p1=%p,p2=%p\n",p1,p2);

temp=p1;

p1=p2; p2=temp;

printf("addr:temp=%p,p1=%p,p2=%p\n",&(*temp),&(*p1),&(*p2));//p1p2是形参指向地址改变了,p3p4是实参,指向地址没有改变

printf("value:temp=%d,p1=%d,p2=%d\n",*temp,*p1,*p2);

}

void main()

{

int a=10,b=20;

int *p3,*p4;

p3=&a;p4=&b;

printf("before swap\n");

printf("a=%d,b=%d,a=%p,b=%p,p3=%p,p4=%p\n",a,b,&a,&b,&(*p3),&(*p4));

swap(p3,p4);

printf("swap\na=%d,b=%d,a=%p,b=%p,p3=%p,p4=%p\n",a,b,&a,&b,&(*p3),&(*p4));

 

*p3=10;

*p4=20;

swap1(p3,p4);

printf("swap1\na=%d,b=%d,a=%p,b=%p,p3=%p,p4=%p\n",a,b,&a,&b,&(*p3),&(*p4));

}

原创粉丝点击