Linux C语言学习笔记
1、int 4字节
long 8字节
float 4字节
double 8字节
long double 16字节
2、一个字符变量只能存放一个字符、一个字节存放一个字节
char c;
c = 'a'; c = '\034' c = '\n'
c = '\x65' c = 65 c = 0101
c = 0x41
3、运算符操作
-i++等价于-(i++)
i = 2;
j = -i++;
运算结果i=3 j=-2
4、优先级
!逻辑非 > 算术运算符 > 关系运算符 > &&逻辑与 > ||逻辑或
a = 0; b = 1; c = 2; d = a++&&b++&&--c
等价于
a = 0; b = 1; c = 2; d = (a++) && (b++) && (--c)
结果为
a = 1; b = 1; c = 2; d = 0;
a = 0; b = 1; c = 2; d = a++||b++||--c;
等价于
a = 0; b = 1; c = 2; d = (a++) || (b++) || (--c);
结果为
a = 1; b = 2; c = 2; d = 1;
5、复合赋值运算符
a += b 相当于 a = a + b;
a *= b + c 相当于 a = a * (b + c);
a = 2; a += a *= a; 等价于 a += (a *= a); 最后a = 8;
a = 5; b = 3;
int max = --a == b++ ? a++ : b++;
最后max = 4;
6、强制类型转换
int a = 2;
int b = 5;
(float)b/a等于2.5
(float)(b/a)等于2.0
7、字符串拷贝函数
char *strcpy(char *dest, const char *src);
函数功能:将字符串src复制到字符数组dest中,返回复制的字符串。
src可以是字符数组名、常量或字符指针变量。
dest可以是字符数组名或字符指针变量。若dest是字符指针变量,要注意给该指针变量赋初值。
函数说明:
字符数组1长度应大于等于字符串或字符数组2的长度;
字符数组1应该写成数组名的形式
例如:
static char a[10] = "abcdefghi";
char b[] = "happy";
相关文档:
前天晚上遇到一题,编写程序求出最大公因数(最大公约数),本能的我想起来了数学中求最大公因式的方法,可是在程序实践上
明显的出了问题,两个数要一个一个的进行拆解,然后找到相同的,这根本是一条死路,思索一夜醒来,突然迸发灵感,可以
用两个数进行取余运算,如果余数为零则最大公因数为被除数,不为零则余数为最 ......
1、隐式转换
C在以下四种情况下会进行隐式转换:
1、算术运算式中,低类型能够转换为高类型。
2、赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给他。
3、函 ......
一直对linux启动时挂载根文件系统的过程存在着很多疑问,今天在水木精华区找到了有用的资料,摘录如下:
1。linux启动时,经过一系列初始化之后,需要mount 根文件系统,为最后运行init进程等做准备,mount 根文件系统有这么几种方式:
1)文件系统已经存在于硬盘(或者类似的设备)的某个分区上了,kernel根据启动的命令 ......
//获取子网掩码的函数QString GetLocalNetMask()
{
int sock_netmask;
char netmask_addr[50];
struct ifreq ifr_mask;
struct sockaddr_in *net_mask;
sock_netmask = socket( AF_INET, SOCK_STREAM, 0 );
if( sock_netmask == -1)
{
perror("create socket failture...GetLocalNetMask\n");
......