C 语言 整理8

// int  a  = 010 + 10 ;  //0开头是八进制.
    //0b 开头是二进制
    //0x 开头是十六进制
   // printf("%d " ,a ); //%d 打印十进制整数.
    //%x 打印十六进制. (字母小写)   %X  打印十六进制 (字母大写)
    // %o 打印八进制
    //一个字节 又是八位二进制数.
    
    
    //位运算符
    //按位与 & (同为1 , 则为1 , 否则 为0 );
    
    // 按位或 |  (同为 0 , 则为 0 , 否则 为 1 );
    
    //按位非  ~
    
    //按位异或  ^ (相同为 0  ,不同为 1);
    
    // 左移 运算符  左移一位相对于乘 2 ;
    // 右移 运算符  右移一位相对于除 2 ;
    
    //二进制的高四位 和第四位互换.
    unsigned  char a = 130 ;
    unsigned char  left = 0;  //存储左移之后的结果
    unsigned char  right =  0 ; //存储右移之后的结果
    
    left  = a << 4 ;
    right = a >> 4 ;
    
    printf("%d" , left | right) ;
    
    
    //二进制数的奇偶位互换 .
    
    //1,偶~奇 (右移一位)
    // 保留奇数位,将偶数位清零 .  & 01010101
    
    //2,奇 ~ 偶 (左移一位) ;
    //保留偶数位 , 将奇数位 清零 & 10101010
    
    
    /**
    unsigned char b = 0b10110111;
    
    unsigned char left  =  0 ; //存储左移后的结果
    unsigned char right = 0 ; //存储右移后的结果
    
    
    //如果想做清零操作使用 按位与 , 清零位为 0  ,保留位为1
    //(1) 先左移一位
    
   
     *
        left = b << 1;
    //(2) 保存偶数位 ,将奇数位清零
    left =  left & 0b10101010;
    //(3)右移一位
    right = b >> 1 ;
    //(4)保留偶数位 , 将奇数位 清零
    right = right & 0b01010101 ;
    //(5) 按位或
    
     
    printf("%d\n" , left | right);
    
    */
    
    //栈区内存分配原则:从高到低分配,从低到高 存取
    // 地址 : 内存单元的编号.
//    
//    int a = 10 ;
//    int b = 5 ;
//    printf("%p  %p\n",&a ,&b);

//    int a [5] = {1,2,3,4,5};
//    
//    printf("%p \n%p \n%p \n%p \n%p \n %p \n" ,&a[0], &a[1] ,&a[2] ,&a[3] ,&a[4] ,a);
    
   // printf("%d \n " , 3 ^ 5);

C 语言 整理8,布布扣,bubuko.com

时间: 2024-10-23 13:11:11

C 语言 整理8的相关文章

c 语言 整理

// const 修饰变量,把变量当做常量来看待,只能读不能写. //const  修饰谁,谁就不可变 const int *p = &a; //const 修饰 *p, 不能通过指针变量p修改指向空间的内容 ,但是p 可以重指向. int const *p1  = &a ; //const 修饰 *p1, 不能通过指针变量p修改指向空间的内容 ,但是p 可以重指向. (通过*p1 修改指向空间的内容的权限 被限制) int * const p2 =  &a; //const 修饰

C 语言 整理5

// 函数存在的意义:把main 函数中复杂的逻辑进行拆分,有一个一个单独的函数来处理一个单独的模块,main 函数只起到宏观调控的作用./* 函数的定义 : 包括以下四部分: 1.返回值类型(要返回的数据的类型) 2.函数的名字(给函数起一个名字). 3.参数列表(用来接收传入的数据). 4.函数体(函数真正的功能,实际做的操作).*/ /* 函数格式:1.无参数 无返回值. void函数名命名规范: 有单词组成 ,查了第一个单词外,其他单词的首字母 大写. 工程名命名规范: 有单词组成 ,每

C 语言 整理6

//数组作为参数时,函数调用传入数组名即可 #import "Function.h"int  var = 10; //全局变量,在所有函数中都可以访问.程序运行期间空间不回收. //变量 x y 是在函数内部定义的变量,只能在函数内部有效,在函数之外,就无法访问,所以叫做局部变量,(当函数调用时,为变量开辟空间,当函数结束之后,回收空间.) int maxValue (int x ,int y) //被static 修饰的变量成为静态变量,    //特点: 1.空间值开辟一次,而且在

C 语言 整理7

#import "Struct.h"//导入自定义的头文件时,用 " "  导入系统定义的头文件时 使用 < > //数组作为函数参数在传递时,值填写数组名即可.   // printAllStudentInfo( b ,5); /** *  结构体嵌套,在一个结构体的结构体成员变量是另外一个结构体类型的变量. */ C 语言 整理7,布布扣,bubuko.com

C 语言 整理9

//定义一个指针变量 , 和定义整型变量类似,也包括三部分:数据类型 变量名 =  初值    //只不过指针变量用来存储地址而已.    //int  * 指针变量类型 , p 指针变量名 , NULL 指针变量初值.    //int  的作用 : 1,当自增时增加几个字节,2,当存取数据时一次性读取几个字节.    // 定义时 , * 告诉编译器,后面的变量是一个指针变量;       int  * p = NULL ;        //指向关系    p = &a;  //将a 的地

C 语言 整理1

//枚举类型是一个构造类型,它使一组整型常量,罗列处理所有的可能性.//定义枚举 使用关键字 enum + 枚举类型的名字 { 枚举值,多个枚举值之间通过使用逗号分隔}: 最后的分号必不可少.//枚举类型将人能够识别的标识符,和计算机能识别的数字对应起来. //if(条件表达式){语句} 当条件表达式的条件成立时,执行大括号内的语句,否则执行if之后的语句. //if(条件表达式) {语句1} else { 语 句2} break;//结束当前分支,跳出switch,执行之后的语句. defau

C 语言 整理2

//for    //<#initialization#> 变量初始化    //<#condition#>循环条件    //<#increment#>//变量增量    //<#statements#>循环体,每次反复执行的内容. //循环变量的名字 先以i,j,k,为主. // while和do while 的区别    //对于while 循环,需要先判断循环条件,然后执行循环体,而对于do while 不管条件是否成立,先执行一次循环体,后判断条件

C 语言 整理 3

//定义一维整形数组    //1,数据类型 2,数组名 3, 中括号中填写元素个数 4,初值 ,赋值时使用大括号,内部为每个变量赋初值,中间应聘哪个逗号分割.    //定义数组时,数组元素的个数只能是常量或者是常量表达式,不能为变量.    //取数组中的元素的时候 , 数组名 + 下标. //数组中元素的下标范围 , 0  到数组元素下标 - 1;   数组所占内存空间的大小 = 数组中每个元素所占空间的大小 * 数组元素个数. //外层循环决定比较的趟数    //内层循环比较每趟比较的

C 语言 整理4

//二维数组的定义和一维数组的定义十分相似,只不过和一维数组多了一维,    //定义数组 : 数组类型 数组名 [行数][列数] =  初值 (多个元素赋初值要加大括号) //二维数组定义时 第一位可以不给,行数可以省略,但是第二维下标必须要指定    //并且第一维下标与第二维下标都必须是常量或者是常量表达式. //字符串数组 , 只不过字符串是存储在一维的字符数组中,所以本质上是一个二维的字符数组. //数组名代表数组的首地址,是一个常量地址,不可被修改. //对字符串进行赋值操作时,要使