首页 > 代码库 > C语言复习2

C语言复习2

01-while01
break 跳出循环
continue 跳出本次循环,进入下一次循环
 
02-while02
计算1+2+3+...+n的和
 
 
Q1:unsigned的作用是什么?在一般的计算中感觉不到其作用
 
A.函数声明与定义
函数的声明只要写在调用前,可以在任意地方任意次声明。
#include <stdio.h>

int main(int argc, const char * argv[]) {
    void test();
    void test();
    void test();
    void test();
    void test();
    test();
   
    return 0;
}

void test()
{
    printf("Test\n");
}
 
只有声明没有实现的函数,会出现链接错误
 
 
B.#include
#include相当于复制了引入文件中的内容
#include <stdio.h>

int main(int argc, const char * argv[]) {
#include "t.txt"
   
   
    return 0;
}
 
 
 
C.多文件项目开发
使用.h头文件和.c源代码配合使用,让主源码#include 头文件,取得函数声明
在同一个目录下地源文件中的函数不能冲突,否则会发生链接错误
 
 
D.printf
printf返回字符串的长度,包括转义字符
 
 
E.进制
二进制
int number = 0B1010;
没有二进制的输出格式
 
八进制
    int number2 = 07613;
    printf("number2 = %o\n", number2);
 
十六进制
    int number3 = 0X9FEA3;
    printf("number3 = %x\n", number3);
 
可以使用不同的格式输出,编译器会自动转换进制
 
 
F.类型说明符(只能修饰int)
short int: = short 2字节
long int: long 8字节 = long   输出占位符 %ld
signed int: = signed 默认 带符号位
unsigned int := unsigned 去除符号位,用以存放数值
long long int:= long long 在64位系统中还是8字节,跟long没有区别  输出占位符 %lld
    int s = sizeof (long long int);
    printf("s = %d\n", s);
 
G.位运算
1.& 按位与
2.| 按位或
3.^ 按位抑或
同类型的位运算复合运算符合交换律
4.~ 按位取反
注意在64位系统中, int占8字节,且以补码形式存在,是在此条件下取反
5.<<n 左移
能够按照实际数值进行位移,数值最高位消去,且符号位不会改变
相当于乘以2的n次方
6.>> 右移
 
使用^交换两个变量值
    int l = 10;
    int m = 20;
    l = l ^ m;
    m = l ^ m;
    l = l ^ m;
    printf("l = %d, m = %d\n", l , m);
 
利用位运算符计算奇偶
普通方法
    a%2==0?printf("偶数!\n"):printf("奇数\n);
位运算
    a&1?printf("奇数!\n"):printf("偶数\n");
 
编写二进制输出函数
 
 
H.char
汉字占用3个字节,不能用char
 
 
I.数组
特殊的声明、定义方法
int ages[5] = {[2] = 4, [4] = 1};
 
int count = 5;
int ages[count] ;
 
错误:
    int d[count] = {1,2,3,4,5};
定义的同时赋值,数组大小必须使用常量
 
数组作为函数参数的时候,可以省略数组长度
数组作为函数参数是指针传递
作为形参的数组在使用sizeof 的时候,数组作为指针存在,长度是8字节

C语言复习2