美文网首页
DAY4C语言知识整理3(相较刚学时毫无长进的数组)进制转换实例

DAY4C语言知识整理3(相较刚学时毫无长进的数组)进制转换实例

作者: 辞cccc | 来源:发表于2019-08-01 21:26 被阅读0次

c语言知识点整理3

运算符补充

&&

先判断前面,再判断后面
若前面不符合后面不执行

int i = 10;
int j = 20;
if(i>20&&j++>10){
...
}
printf("%d",j);

输出20,因为前一个条件不满足,所以后一个条件中的自加不执行

||

前后都要执行,不论是否成立

int i = 10;
int j = 20;
if(i>20||j++>10){
...
}
printf("%d",j);

输出21

++

int temp1 = 20;
printf("%d\n",temp1++)

等效于

printf("%d\n",temp1);
temp1=temp1+1;

a++表达结束之后再加一
++a 先加一再执行表达式

数据类型转换

隐形转换

两种不同类型出现时,自动从低到高转换
char int float double long

强制转换

int b =(int) a

自定义头文件.h和实现文件.c

  1. .h 函数的声明 变量的声明(不能赋值)
  2. .c 具体实现 实现函数的功能 操作变量
    可以实现将函数的声明和实现分离开来
    封装:封装某些功能;便于移植=方便下一次使用

方法

  1. 创建.h文件
    声明函数
  2. 创建.c文件
    函数的具体实现
  3. 在.c文件中导入.h文件
    相当于.c文件里面有函数的声明和实现
  4. 在使用的地方导入.h文件
    注意
    1. 尽量让.h和.c文件名相同
    2. 头文件相互引用会出错
      可以用宏定义解决
#ifndef ATM_HHHH
#define ATM_HHHH
具体代码块
#endif

宏定义

  1. 给特定的数值一个意义
  2. 便于管理
  3. 定义一个表达式(开关)
    #define wechat 1;
#include "pch.h"
#include <iostream>
#if 1
#define Log(x) printf(x)
#else
#define Log(x)
#endif
int main()
{
        Log("ccc\n");
}

数组

为什么使用数组

基本数据类型 只能存储一个数据
int float double long char bool
数组 需要存储多个同种类型的数据

  1. 能够存储数据 就必须要有内存
  2. 如何定义一个数组的同时为它分配内存空间
  3. 数组定义时必须明确知道数组的大小
    a. 初始化几个就是几个
    b. 定义时明确指定数组的大小
    int temp[5];
    c. 明确制定大小并且初始化
    int temp[5]={1,2};
  4. 数组的名字就是数组的首地址(第一个元素的地址),使用%p打印地址

printf("%p\n",&score[0]);
printf("%p\n",score);
会显示相同结果

如何使用一个数组

  1. 访问 通过下标来 0 - n-1
    printf("%d\n".temp[0]);
  2. 赋值
    temp[0] = 6;

demo 十进制转换二进制/十六进制

转换二进制

    int num = 0;
    int res[20];
    int i = 0;
    printf("请输入一个十进制数:");
    scanf_s("%d", &num);
    do {
        res[i] = num % 2;
        num /= 2;
        i++;
    } while (num >= 1);
    for (int j = i-1; j >= 0; j--) {
        printf("二进制为%d", res[j]);
}

转换十六进制

    int num = 0;
    int res[20] ;
    int i = 0;
    printf("请输入一个十进制数:");
    scanf_s("%d", &num);
    do {
        res[i] = num % 16;
        num /= 16;
        i++;
    } while (num >= 1);
    for (int j = i-1; j >= 0; j--) {
        if (res[j] > 11) {
        printf("%c",'a' + res[j] - 10);
        }
        else {
            printf("%d",res[j]);
        }
    }

体会

上午听自定义头文件的时候vs扯拐得很,一直无法读取,弄着弄着pch.h也无法读取了...后面重新做了一次有什么问题都没了。下午做十六进制转换的时候,脑袋卡壳了,直接用%x就转换了,可能真的该补脑了。

相关文章

网友评论

      本文标题:DAY4C语言知识整理3(相较刚学时毫无长进的数组)进制转换实例

      本文链接:https://www.haomeiwen.com/subject/jkthdctx.html