嵌入式linux c语言引用设计

未完持续

4.1

csb@csb-ThinkPad-E430c:~/code/c$ cat float.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));

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值