入门学习c语言的自我总结(1)

 一.基础知识

1.了解了内存单位bite,字节,kb,mb,gb,tb,pb等相关基础概念,以及换算关系,除了一字节是8个bite,其它相邻两个内存单位的换算就是1024倍。

2.了解了数据类型,如int,short,double,float,char等

3.打印整型要有%d,打印字符%c,打印字符串%s,打印地址%p等。

4.c语言中表示真假:0表示假,非0表示真。

 二.学习过程中的重难点

1.字符串的结束标志:'\0'

int main() {
    char a[] = "abcd";
    printf("%d\n", strlen(a));    //4
    char b[] = { 'a','b','c','d'};
    printf("%d\n", strlen(b));   //随机值
return 0;

}
//像字符数组a默认是最后存在'\0'的,所以计算长度时自然正常地结束,而b是由一个个单独的字符组成的数组,'\0'出现的位置也是随机的。'\0'就是一个转义字符

2.整个转义字符算一个长度单位(\ddd也代表一个转义字符,但d不能超过八,因为ddd为八进制数)

 printf("%d\n", strlen("c:\test\32\test.c"))       //13

3.输入函数scanf()

int main(){    

int input = 0;
    printf("你要好好学习吗:");
    scanf_s("%d", &input);
    if (input == 1)
        printf("好offer\n");
    else
        printf("完蛋\n"); }

4.位操作符

    int a = 3;      //011    转化为二进制状态   进行位操作
    int b = 5;      //101
    int c = a & b;    //001     相同为1 ,相异为0(两个都为0时那还是0)
    int d = a ^ b;  // 110      异或:对应二进制位相同则为0,对应的二进制相异则为1
    int e = a | b;    //111     相同位置有1那就是最后结果那个位置也有1
    printf("%d\n", c);   //打印出来的还是十进制数
    printf("%d\n", d);

5.移位操作符

    int a = 3;   //011
    int b=a <<1 ; // 110       二进制下面的移位操作 << 左移  >> 右移
    printf("%d\n", b);    //6

6.计算数组的大小

    int arr[] = { 1,2,3 };
    printf("%d\n", sizeof(arr));  //计算数组的大小,返回的是字节

7.取反符号

    int a = 0;   //~取反符号
    int b = ~a;  //一个属用字节来表示时,字节最前面的数(符号位)为1时,表明为负数,负数在内存存储的时候是二进制的补码
   使用的 ,打印的为原码,原码符号位不变,其它取反变为反码,反码加一变成补码
    printf(" % d\n", b);    //-1

8.前置运算符和后置运算符

    int a = 10;
    int b = a++;   //先用再加
    printf("%d\n %d\n", a, b);  // 11,10
    int c = 5;
    int d = ++c;    //先加后用  11,11
    printf("%d\n %d\n", c, d);

9.三目操作符,条件操作符

    int a = 10;
    int b = 20;
    int max = 0;
    max = (a > b ? a : b);  //如果前面的条件为真,则返回a;反之为b
    printf("%d\n", max);
 

10.宏的概念

#define MAX(x,y) (x>y?x:y)  //定义宏(比运用函数更为简便)
int main(){
    int a = 10;
    int b = 20;
    int max = 0;
    max = MAX(a, b);
    printf("max=%d\n", max);
    return 0;
}

//类似定义宏  #define MAX 100(表明已经定义好MAX=100的数)

11.指针

int main() {
    int a = 1;
    int* p = &a;
    printf("%p\n", &a);    //打印出a的地址
    printf("%p\n", p);       //打印出a的地址
    return 0;
}

int main() {
    int a = 1;
    int* p = &a;
    *p = 20;          //*解引用操作符
    printf("%d\n", a);   //新值20
    printf("%d\n", sizeof( p));  //8  64位的电脑指针都占8个字节
    return 0;
}

12.结构体

struct book {
    char name[20];
    short price;
};
int main(){
    struct book b={"哈哈哈",30 };
    struct book* c = &b;
    printf("书名是:%s\n", c->name);
    printf("价格是:%d\n", c->price);
    printf("书名是:%s\n", (*c).name);
    printf("价格是:%d\n", (*c).price);
    printf("%s\n", b.name);
    printf("%d\n", b.price);
    strcpy(b.name, "c++");    //字符串拷贝,前面是字符串的目的地,后面是要改成的值(改变char值的一种方式)
    printf(" % s\n", b.name);
    return 0;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值