c语言

来源:互联网 发布:c语言编程实例源代码 编辑:程序博客网 时间:2024/06/05 00:42

1)类型
一:字符串类型
char *
char c = ‘b’;
char *p = “b”;
char *q = “abcd”;
字符串就是大于或等于一个字符的集合。
内存条是一块连续的内存。
现在的a有两种含义,第一种就是a字符,第二种是abcd的首地址。
当我们的*q指到a,那么因为内存的连续性,会不断的往后指,最终遇到\0停止。

二:void
第一种含义:任意类型(无类型)。
第二种含义:空类型(无)。
作用:1.修饰指针,代表接受任意类型的数据,数据类型未知。
2.修饰函数的返回,代表不接受任何的返回值。
3.修饰函数的参数,代表参数接受任意类型。
注意:void不能直接当做类型定义变量,只能修饰。

默认转换类型方向:
char->short->int->long->long long->float->double->long double
从左往右,数据不会改变;如果从右往左,数据的精度会丢失
double 1.123456789123456 -> folat 1.123456 ->long long 1
int 00000000 0 0 00000001
char 000000001

强制转换的方法:一定要类型匹配    char a = 12;    int b = (int)a;

2)运算符
运算符:

1.算术运算符
算术符号:+、-、*、%、/、++、–
至少有一个变量,一种情况是作为计算,另外只是作为符号(+、-)。
17/10 整除 结果为1 不是四舍五入
17%10 取余 结果为7

++ 自加 自己加1-- 自减 自己减1如果作为前缀,会先自加或自减再去运算,如果作为后缀,会先运算再自加或自减。

2.关系运算符
一般情况下是用来比较的。
if 如果
运算符号:>、<、>=、<=、==、!= += -= *= /=
if(真or假)
if(表达式)
例:
if(25 < 30)
{
我比你大,
}

3)逻辑运算符
运算符号:!、&&、||
! 否 相反的意思
&& 与 并且 必须同时两个表达式都为真才为真
|| 或 或者 只要有一个表达式为真,就是真的

主要操作表达式,利用两个表达式之间的真假来做操作。if((25 < 30) && (25 == 30))  // 不是用于计算数值{    我比你大,}

4)位运算符
位运算符—》跟硬件打交道
(1)运算符号 &按位与 |按位或 ~按位取反 ^按位异或
(2)各个击破
& 只要有一个位是0,则结果为0 是计算数值的
a=10 b=11
a&b 1010
1011 & 结果 1010 十进制10
a&&b
| 只要有一个位是1,结果就是1,两个都为0,结果才是0
~ 将所有的二进制位取反
^ 相同为0,相异为1
a=10 b=11
a^b
1010
1011 ^ 结果 0001 十进制1
特点
a^0=a
a^a=0

5)左移和右移
左移的效率会比乘法运算要高很多,但是有局限性,只能计算2^n这种乘法
a<<2 b>>2
(1)左移(相当于做了乘法运算a*2^n)
本身移到高字节,低字节全部补零
a=10 二进制1010
a<

define 宏的名字 表达式/数值

2.宏定义在C语言中有两种:
带参数的宏定义(容易跟函数的调用混淆)—》宏函数(虽然称它”函数”,但是不是真正意义上的函数)
#define MUL(a,b) a*b
(1)上面这种写法不足是:当a或者b有进行其他运算的时候,结果会出错
常见的解决方案是:给变量加上括号 #define MUL(a,b) (a)*(b)
(2)宏定义如果实在是需要换行,那么请你必须加上C语言中的续行符,如果有多条语句还必须使用({多条语句})
(3)由于宏函数中参数的类型不知道,所以有的时候会用到typeof()去求某个变量的类型
补充:标准C语言—》美国国家标准协会制定的关于C的语法规范
GNUC语言—》在标准c语言的基础上又扩展了新的语法

  不带参数的宏定义      #define  PI   3.14

肤浅的理解宏:宏就是字符的替换
好处:增强可读性
可替换性更好
3.程序编译的四个过程:
gcc hello.c -o hello —》省略了四个步骤,一步到位
预处理:对.c文件中所有的#开头的语句进行分析,展开(宏的替换展开)
#头文件
#define宏
#ifndef条件编译
gcc hello.c -o hello.i -E
-E 对程序进行预处理
编译:将代码编译成汇编程序
gcc hello.c -o hello.s -S
汇编:将汇编代码编译成.o结尾的二进制文件
gcc hello.s -o hello.o -c

 链接动态库文件生产可执行程序:       gcc hello.o -o hello

13)静态库和动态库
1.什么是库文件??
头文件—》函数,变量,结构体……..
库文件—》函数的具体代码通过特定的编译器编译得到库文件

include

0 0
原创粉丝点击