初识C语言(学习笔记)

如果有理解不对的地方希望看到本文章的同志们能够指正;

#define  _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include<string.h>


//int main()
//{
//    char ar[] = { "abc" };   //字符串结束标志为\0    字符串就是一串字符可以为abc,可以为hello,并且在结尾的位置隐藏了一个/0
//    char br[] = { 'a','b','c',0 }; //使用strlen标识符需要有#include<string.h>的头文字定义    
//    int len = strlen(ar);         //strlen 用于求字符串的长度
//    printf("ar=%s\n br=%s\n", ar, br);
//    printf("ar长度为%d\n", len);
//    printf("br长度为%d\n", strlen(br));
//    return 0;
//}
// 
// 
//#define MAX 10000 //define定义的标识符常量
//int main()
//{
//int n = MAX;
//printf("n = %d\n", n);
//return 0;
//}

//const修饰的常变量
 //const int num=10  加上const就是将这个变量锁住,之后无法在赋值更改。


//    // 枚举常量    可以一一列举的常量 关键字 enum
//    enum sex
//{
//    boy,
//    girl=3,//赋初值
//    secret
//};


    //字符数组 数组是一种相同类型的元素


//int main()
//{
//    int a = 9,
//        b = 8,
//        c, d;
//    c = a + b;
//    printf("d=%d\n", d = a + b);
//    return 0;
//}

//转义字符 转变了他原来的意思
 //\n 换行  
    // int main()
 //{
    //     printf("ab\ncd");
 //}

//printf在打印数据时,可以制定打印格式
//int main() 
//{
//    printf("%d\n", 100);//% d打印整形
//        printf("%c\n", 'c');//% c打印字符
//        printf("%s\n", "abc");//% s打印字符串 \\表示一个反斜杠,防止要打印的内容中所包含的斜杠被解释为一个转义字符
//}
// %a(%A)    打印浮点数、十六进制数字和p-(P-)记数法(C99)
// %c        打印字符
// %d        打印有符号十进制整数
// %f        打印浮点数(包括float和double)
// %lf       打印双精度浮点数(double) 
// %e(%E)    打印浮点数指数输出[e-(E-)记数法]
// %g(%G)    打印浮点数不显无意义的零"0"
// %i        打印有符号十进制整数(与%d相同)
// %u        打印无符号十进制整数
// %o        打印八进制整数  e.g.  0123
// %x(%X)    打印十六进制整数< ? xml : namespace prefix = st1 / >()   e.g.   0x1234
// %p        打印指针
// %s        打印字符串
// %%        打印"%"


//int main()
//{
//    int input = 0;
//    printf("要好好学习吗(1/0)?>:\n");
//    scanf("%d\n",    &input);
//    if (input == 1)
//        printf("好offer!!\n");
//    else
//        printf("卖红薯!!\n");    
//    return 0;
//}

//int num = 10;
//int main()
//{
//    {
//        int num = 1; //此处的num=1为局部变量;只作用于他所在的大括号内;
//        printf("%d\n", num);//全局变量可以作用于整个工程内;
//
//    }
//    printf("%d\n", num);
//    return 0;
//}
#include<stdio.h>


//int main()
//
//{    
//    int s = 0;
//    while (s < 30000)
//    {
//        printf("写代码%d\n", s);   //循环语句
//                s++;
//    }
//    if (s == 30000)
//    {
//        printf("起飞\n");
//    }
//        return 0;
//}



//int main()
//{
//    int sz[10] = { 1,2,3,4,5,6,7,8,9,10 };//创建数组
//    char sz2[5] = {'a','b','c'};
//    int sum = 0;
//    sum = sz[0] + sz[1];
//    printf("sum=%d\n", sum);//访问数组 用下标来访问
//    printf("%d\n", sz[3]);   //[]用于访问数组中的元素,[]中添加数组中元素对应的角标;
//    printf("%c\n", sz2[0]);
//    return 0;
//}



//int main()
//{
//    int a,b,c,d,e,f,g;
//    scanf("%d%d", &a, &b); //算术操作符 加减乘除  %为取余 /只能得到商,不能得到余数 /除号两端有一个书是小数,并定义进浮点型float则可以得到带小数的商;
//    c = a + b;
//    d = a * b;
//    e = a % b;
//    f = a / b;
//    printf("c=%d\nd=%d\ne=%d\nf=%d\n", c, d,e,f);
//    return 0;
//}
//  << , >>左移 右移操作符 移动的是二进制位
//  位操作符 &按位与
//           |按位或
//           ^按位异或




//    赋值操作符 = += -= *= /= &= ^= |= >>= <<=
// 双目操作符比如a+b +有两个操作符成为双目操作符
// 单目操作符!逻辑反操作, -取负值, +取正值, &取地址, sizeof取操作数的类型长度, ~对一个数的二进制进行按位取反,  ——, ++前置后置
//   int main()
//{
//    int a = 2;
//    int b = 0;
//    a = a + 5;
//    a += 5;  //也可以叫复合赋值;
//    printf("%d\n", a);
//    printf("%d\n", !a);    //!逻辑反操作,如果一个数不为0,则将其变为0,;若为0,则变为1;
//    printf("%d\n", !b);
//    return 0;
//}
//0表示假,非0表示真;
//int main()
//{
//    int a = 0;
//    if (a)
//      {                     //a为真,进此循环
//    }
//    if (!a)
//    {                     //a为
//    }
//    return 0;
//}
//int main()
//{
//    bool a = 1;
//    printf("%d\n", ~a);
//    return 0;
//}
//int main()
//{
    



//int a = 10;
    //int b = ++a;//前置++ 先++后使用 运行后b=11;并且a也加1,a=11;
    //printf("%d\n", b);
    //printf("%d\n", a);
    //return 0;

    //int a = 10;
    //int b = a++;//后置++ 先使用后++ 运行后b=10;而a加1,a=11;
    //printf("%d\n", b);
    //printf("%d\n", a);
    //return 0;

    //int a = 5;     -- 与 ++ 计算方式相同
    //int b = a--;
    //printf("%d\n", a);
    //printf("%d\n", b);

    
    //}
//强制类型转换操作符 略
//关系操作符 ==(用于判断是否相等) !=(用于判断是否不等) >   <  >=  =<
//逻辑操作符 &&逻辑与    ||逻辑或
//int main()
//{
//    int a = 5, b = -6;
//    int c = a && b;              //a& &b 两个数都为正或都为负则为真输出1 有一个数为正一个数为负或两个数都为0则为假输出0
//    printf("%d\n", c);
//    return 0;
//}
    //{
    //    int a = 2, b = 0;            //a||b 有一个为正则为正,输出1,两个都为负或都为0则为假,输出0
    //    int c = a || b;
    //    printf("%d\n", c);
    //    return 0;
    //}




//条件操作符(三目操作符)   exp1 ? exp2 : exp3
//                         若exp1成立,则exp2计算,整个表达式的结果为exp2的结果;
//                         若exp1不成立,则exp3计算,整个表达式的结果为exp3的结果;
// 例 比较两个数大小
//int main()
//{
//    int a = 3, b = 4;
//    int  MAX = 0;
//    if(a>b)
//    {              
//        MAX = a;
//    }
//    else
//    {
//        MAX = b;
//    }
//    printf("%d\n", MAX);
//        
//    return 0;
//}
//上段代码也可写为;
//int main()
//{
//    int a = 5, b = 4, MAX = 0;
//    MAX = a > b ? a : b;
//    printf("%d\n", MAX);
//    return 0;
//}



//逗号表达式   逗号隔开的一段表达式 exp1,exp2,exp3,exp4,.......expn; 
//int main()
//{
//    int a = 1, b = 2, c = 3, d = 0;
//    d = (a = b + 2, c = a - 4, b = c + 2); //从左到右依次计算,最后一个表达式的结果为整个表达式的结果;所以a=2+2=4,c=4-4=0,b=0+2=2,所以d输出为2;
//    printf("d=%d\n", d);
//    return 0;
//}    



//函数调用操作符
//int main()
//{
//    printf("hehe\n");//调用函数的时候,函数名后面的括号就是函数调用操作符;
//    return 0;
//}
        



///常见关键字
//1.关键字只能使用C语言提供的,不能自己创建关键字;
//2.关键字不能做变量名; 
//auto break case char const continue default do double else enum
//extern float for goto if int long register return short signed
//sizeof static struct switch typedef union unsigned void volatile while  

//auto 自动 每个局部变量都是auto修饰的;
//extern 用来声明外部符号的;
//register 寄存器关键字;
//signed 有符号的 10 -20
//unsigned 无符号的
//static 静态的
//struct 结构体
//typedef 类型重命名
//union 联合体(共用体)
//void 无(空)
//define include 为预处理指令,不属于关键字;

//typedef类型重命名
//例
//typedef unsigned int u_int;
//int    main()
//{    
//    unsigned int a = 100;//typedef 将unsigned int 重新命名为u_int;之后所有的unsigned int 都可写为u_int;
//     u_int a = 100;    //以上一句含义完全相同
//    return 0;
//}

//static 静态的 修饰局部变量 修饰全局变量 修饰函数
 // 修饰局部变量可以使局部变量生命周期延长(本质上是改变存储类型),不被销毁;
//修饰全局变量使全局变量只能在它所在的.c源文件中使用,不能在其他.c源文件中使用;(全局变量具有外部链接属性,stasic修饰后只剩内部连接属性)
//修饰函数使函数只能在它所在的.c源文件中使用,不能在其他.c源文件中使用;(函数具有外部链接属性,stasic修饰后只剩内部连接属性)

//int acc()
//{
//    int a = 1;
//    a++;
//    printf("%d\n", a);
//}
//int main()
//{
//    int i = 0;
//    while (i < 10)
//    {
//        
//        i++;
//    }
//    return 0;
//}
//void acc()
//{
//    static int a = 1;
//    a++;
//    printf("%d\n", a);
//
//}
//int main()
//{
//    int i = 0;
//    while (i < 10)
//    {
//        acc();
//        i++;
//    }
//    
//    return 0;
//}

//define 定义常量和宏
//1.定义常量:#define MAX 1000
//2.定义宏:
//#define ADD(X,Y) X+Y
//int main()
//{
//    printf("%d\n",    ADD(4, 5));
//    return 0;
//}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值