Linux C - C基础篇(一)

Linux C - C基础篇(一),第1张

1) 最高位是符号位,0表示正数,1表示负数。

2) 如果是正数,正常表示(即原码),如果是负数,先求反码,再求补码(补码为反码加1)即为他的二进制表示。例如char型的1,用二进制表示为00000001;char型的-1用二进制表示为11111111。

常量,就是在程序运行过程中值无法被改变;变量,就是在程序运行过程中内部存储的值随时可以被改变。变量是“可读、可写”,而常量,是“只读”的。

整形常量:12、浮点型常量:12.35、实数型常量:1.3e-5、字符型常量:'a'、字符串型常量:"abc"、标识符常量:#define LEN 10。

变量一般存放在内存中:栈区, 静态数据区,全局变量区, 堆区。函数中定义的变量,如果不加特殊修饰,都是保存在栈区,函数调用结束,栈空间被自动释放。

定义变量:

<存储类型><数据类型><变量名>

static/auto/... int/char a

例如:static int a;char c;

存储类型:

自动类型转换

将一种类型的数据赋值给另外一种类型的变量时就会发生自动类型转换,例如:float a = 10;10是int类型的数据,需要先转换成float类型然后再赋值给变量a。

在不同类型的混合运算中,编译器也会自动地转换数据类型,将参与运算的所有数据先转换为同一种类型,然后再进行计算。转换的规则如下:

强制类型转换

自动类型转换是编译器根据代码自己判断的,有时候我们需要手动的进行数据类型转换,称之为强制类型转换,例如:

(int)(a+b)//将a + b 求得结果的数据类型强制转换为int型。

运算符的优先级

特殊运算符>单目运算符>双目运算符>三目运算>赋值运算>逗号运算

linux下可以用sprintf代替_snprintf

sprintf 是个变参函数,定义如下:

int sprintf( char *buffer, const char *format [, argument] ... )

可以这样用sprintf(string,"%d",value)所以你必须先指定string的大小

至于vc环境的程序移植到linux下,你可以到网上下载 Linux C函数使用手册.chm

然后对照到windows下的函数改一下就差不多了!!!!!!!

第一:linux下不成认无返回值的main方法

第二:你这个若成功,也只能够读取/etc/rc.d目录下的内容

#include<sys/types.h>

#include <stdio.h>

#include<dirent.h>

#include<unistd.h>

int main(int argc,char **argv)

{

DIR * dir

struct dirent * ptr

int i

if(argc==1)

dir=opendir("./")

else

dir=opendir(argv[1])

while((ptr=readdir(dir))!=NULL)

{

printf("d_name: %s\n",ptr->d_name)//需要更详细的信息你可以修改该句

}

closedir(dir)

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8967700.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存