C语言基础
经典入门“hello world!”
*源文件:hello.c
*头文件:用#include包含
*关键字:关键字,32个关键字。main是主函数,程序运行入口。return是函数结束的标志。
*符号:#号是C语言的一种符号,%取余符号 ,++、--、&、|、~、!、;(一句代码的结束标志)。
*注释://注释一行代码的,多行的语句就用/*...*/注释。
*变量:是变化的,在计算过程中会发生变化的量。
*函数:函数小括号里面参数列表,紧跟一对花括号,话括号里面是函数体。
步骤:
编辑、编译、运行、调试
1,编辑:vim编辑 .c 格式的文件
2,编译:gcc 加上 文件名
3,运行:直接输入编译后产生的gcc文件
4,调式:根据编译提示的信息,重新对源文件进行调整
数据类型:整形(long int, short), 浮点型, 字符型。
负数、隐式转换
字节:所有的系统里面,一个字节占8bit。整形占4个字节32位。
程序结构
1、顺序执行
2、选择执行
(1)if() + else 条件成立,就运行,中间不能加别的语句。else 匹配就近原则
(2)if() + else if() + else
(3)switch(变量或者表达式或者数字) + case
3、循环执行
(1)、for(初始条件;终止条件;循环增量)条件需要程序员自己把握。
(2)、while先运行终止的条件判断,再运行循环体,循环体内包含循环增量(先判断后运行)
(3)、do while 先运行循环体,循环体包含循环增量,在进行判断(先运行后判断)
位运算
(1)位与 &符号,两个&&是逻辑与
真值表:1&0=0, 1&1=1,0&0 = 0, 0&1=0
位与和逻辑与的区别:位与时是两个操作数按位(二进制位)相与一一对应,逻辑与是两个操作数作为整体来运算,1&&0xF= 1, 0&&0xF = 0.运算出来是逻辑值。
(2)位或 |符号,两个||是逻辑或
真值表:0|0 = 0,别的情况都是1。
位或和逻辑或的区别::位或时是两个操作数按位(二进制位)相或一一对应,逻辑或是两个操作数作为整体来运算,1&&0xF= 1, 0&&0xF = 1.运算出来是逻辑值。
(3)位异或^符号,它也是位运算符,真值表:0^0 = 0, 1^1 = 0, 0^1 = 1,1^0 = 1.没有逻辑上的异或。
(4)位取反~符号,就是按位取反(0变1,1变0),逻辑取反!符号,操作数(!data(非零) = 0,!data(零)= 1),最终结果是表示一个逻辑值。
(5)左移(<<)和右移(>>),表示按位移动
C语言的移位要取决于数据类型。
对于无符号数,左移时右侧补0(相当于逻辑移位)
对于无符号数,右移时左侧补0(相当于逻辑移位)
对于有符号数,左移时右侧补0(叫算术移位,相当于逻辑移位)
对于有符号数,右移时左侧补符号位(如果正数就补0,负数就补1,叫算术移位)
练习1:
*
***
*****
***
*
练习2:
----------------------------
***www.baidu.com***
++++++++++++++++++++++++++++
练习:
1.给定一个整型数a,设置a的bit3(为1),保证其他位不变。
2.给定一个整形数a,设置a的bit3~bit7,保持其他位不变。
3.给定一个整型数a,清除a的bit15,保证其他位不变。
4.给定一个整形数a,清除a的bit15~bit23,保持其他位不变。
5.给定一个整形数a,取出a的bit3~bit8。
6.用C语言给一个整形数的bit7~bit17赋值937(其余位不受影响)。
7.用C语言将一个整形数的bit7~bit17中的值加17(其余位不受影响)。
8.用C语言给一个整形数的bit7~bit17赋值937,同时给bit21~bit25赋值17.