第一章、c语言初级阶段

Day1.c语言初体验
  1. C语言中每一条语句后面都必须有;号
  2. C语言中除了""引起来的地方, 其它任何地方都不能出现中文
  3. main函数中的return 0;可以写, 也可以不写
  4. main函数前面的int可以写, 可以不写
  5. main函数后面的()不可以省略
  6. 不要把main写错了
  7. 同一程序中只能有一个main函数
  8. 输出函数printf("lnj;");
Day2.关键字

注释的用法

  1. // 单行注释
  2. /*
    多行注释 (以 /星 开头 以 星/ 结尾)
    */
  3. 单行注释可以嵌套多行注释
  4. 单行注释嵌套多行注释的时候, 多行注释必须在同一行内
  5. 多行注释可以嵌套单行注释
  6. 多行注释不能嵌套多行注释

常量

    // 1.整型常量
    10;
    // 2.实型常量(小数)
    // 单精度float / 双精度double
    // 注意: 默认情况下编写的小数都是双精度的实型常量, 也就是默认情况下所有小数都是double
    10.1;// 双精度double
    88.8;// 双精度double
    5.2f; //单精度float
    // 3.字符型常量, 用单引号括起来的就是字符型常量
    // 注意: 字符型常量的单引号中只能写一个字符, 如果写多个会报错
    'a'; // 字符型常量
    'ab'; // 错误
    '1';
    '12'; // 错误, 12是由两个字符组成, 由1和2组成
    // '李'; // 错误写法, 因为一个汉字占3个字节
    // 字符型常量的特殊情况, 在C语言中, 系统给某些字符的组合定义了特殊的函数, 这些字符的组合可以当做单个字符来使用
    '\n';
 
    // 4.字符串型常量, 用双引号括起来的就是字符串型常量
    // 注意: 无论你用双引号括起来了几个字符, 只要使用双引号括起来的都是字符串常量
    "abc";
    "a";

变量

// 1.申请一块存储空间, 也就是定义一个变量
    /*
    // 定义变量的格式: 数据类型  变量名称;
    // 定义一个基本数据类型的变量
    // int float double char
    int number; // 定义了一个名称叫做number的变量
    // 会在内存中开辟一块存储空间给number, 用于存储数据
    */
    /*
    // 2.连续定义, 如果多个变量都是相同类型的, 那么可以采用连续定义
    int number, value;
    // 3.如何往变量对应的存储空间当中存储数据
    // 注意: 变量中不能随便存储数据, 只能存储与之对应的数据
    // 概念: 变量的第一次赋值, 我们称之为初始化,
    // 注意, 要想使用变量都必须先对变量进行初始化, 然后才能够使用
    // 如果不对变量进行初始化, 那么其实变量中存储的是一些垃圾数据
    number = 10; // 会将等号右边的数据放到等号左边的变量对应的存储空间中
    // 4.如何使用变量
    // 占位符号, %号是占位符号的起始符号
    printf("%i\n", number);

    float floatValue; // 定义了一个实型的变量
    floatValue = 10.1f; // 往floatValue对应的存储空间中存储了10.1这个值
    printf("%f\n", floatValue);
    
    int intValue, age; // 定义了一个整型的变量
    printf("%i\n", intValue);
    printf("%i\n", age);
    */
    
    // 6.初始化的两种方式
    /*
    // 1.先定义再初始化
    int number;
    number = 10;
    // 2.定义的同时初始化
    int value = 10;
     */
    
    // 7.完全初始化
//    int number, value;
//    number = value = 10;
    
    int number;
    number = 10;
    int value;
    value = number;

    // 8.部分初始化
//    int number, value = 10;

// 内存寻址从大到小, 如果按照这种规则, 那么先定义的变量内存地址一定大于后定义的变量
    int number = 0;
    int value = 0;
    // 如何获得变量的详细地址(变量的地址), &变量名称
    // 利用%p占位符来打印变量的详细地址
    // 输出的是一个十六进制的数
    printf("%p\n", &number);
    printf("%p\n", &value);

printf和scanf函数

  1. printf函数:
// 1.输出基本数据类型
    /*
    int number = 10;
    int value = 20;
    printf("%i, %i\n", number, value);
    
    float floatValue = 10.1f;
    printf("%f\n",floatValue);
    
    char charValue = 'a';
    printf("%c\n", charValue);
    
    double doubleValue = 9.9;
    printf("%lf", doubleValue);
     */
    
    // 3..指定位宽
//    int number = 99;
//    printf("%5i!!!", number); 这个是右对齐 左边补3个空格
//    printf("%-5i!!!", number);这个是左对齐 右边补3个空格
    
        int number = 9999;
        printf("%2i", number);这个是位宽不够自动升级 正常输出9999
    /*
     // 如何指定位宽? %mi; // 其中m就是位宽 而i输出对应类型的数据
     // 默认情况下位宽是右对齐, 如果需要输出的类型宽度不够, 会在左边补空格
     // 如果在位宽前面加上-号, 就会改变位宽的对齐方式为左对齐,如果需要输出的类型宽度不够,会在右边补空格
    // 注意: 如果指定了位宽, 但是实际输出的内容超出了宽度, 会按照实际的宽度来输出
    
    // 可以在位宽前面加上0, 如果输出的内容宽度不够就会用0来补, 如果宽度已经够了, 那么会按照实际的宽度输出
    int number = 8;
    // 01
    // 2015-06-05
    printf("%02i", number);这个输出08
     */
    // 3.保留位数
    /*
    // %f默认会保留6位小数
    // 指定保留多少位小数: %.nf, 其中n就是需要保留多少位小数, f用于输出实型
    float floatValue = 3.14;
    printf("%.2f", floatValue);
     */
    // 4.%f各种坑
    /*
    // 为什么指定保留10位之后还不对呢? 因为float类型有效位数是7位(不包括小数点)
    // 如何计算有效位? 从第一个数开始计算
    // 如果输出的数据超出了有效位数, 那么就会出现一些垃圾数据
    float floatValue = 3.1415926525;
    printf("%.10f\n", floatValue); // 默认情况保留6位
这个输出:3.1415927410 保留6位 然后第七位四舍五入
    // 如何想完整的输出那么必须将数据保存位double类型, 因为double类型的有效位是15位
    double doubleValue = 3.1415926525;
    printf("%.10lf\n", doubleValue);
这个输出:3.1415926525
     */
    // 5.如何提高比格
    float floatValue = 3.1415926;
    printf("%.*f", 5,floatValue);
  1. scanf函数
// 1.要求: 存储用户输入的整数
    /*
    // 1.用户输入的整数确定吗? 不确定 --> 定义变量
    // 2.如何接收用户输入的整数? scanf函数
    // scanf格式: scanf("格式化字符串", 列表项); --> scanf("%i", 变量);
    
    // 1.定义变量
    int number;
    // 2.利用scanf函数接收用户输入的数据
    scanf("%i", &number);// 注意: 必须告诉scanf函数变量的详细地址, 才能存储用户输入的数据
    // 3.输出接收到的数据
    printf("number = %i", number);
     */
    
    // 2.要求从控制台接收用户输入的两个整数, 然后计算两个整数的和
    /*
    // 0.提示用户输入数据
    printf("亲, 请输入第一个数字, 以回车键结束\n");
    // 1.定义两个变量保存用户输入的数据
    int num1, num2;
    // 2.利用scanf接收用户输入的数据
    // 2.1接收第一个数
    scanf("%i", &num1);
    printf("亲, 请输入第二个数字, 以回车键结束\n");
    scanf("%i", &num2);
    
    // 3.将接收到的两个数相加
    int result = (num1 + num2);
    
    // 4.输出两个数验证结果
    printf("result = %d", result);
     */
    /*
    int num1, num2;
    num1 = num2 = 10;
    printf("num1 = %i, num2 = %i", num1, num2);
     */
    
    /*
    // 0.提示用户输入数据
    printf("亲, 请输入两个数字, 以回车键结束\n");
    // 1.定义两个变量保存用户输入的数据
    int num1, num2;
    // 2.利用scanf接收用户输入的数据
    // 注意: 利用scanf接收多个数据的时候, 输入的内容要求和"格式化字符串"中的一模一样
    // 如果输入的数据与格式化字符串中的不匹配, 那么scanf函数会自动终止
//    scanf("%i,%i", &num1, &num2);
//如果多个数据之间没有其它字符, 那么可以利用 空格, 回车, table来作为分隔
    // 但是, 如果格式化字符串中有%c除外
//    scanf("%i%i", &num1, &num2);
    char charValue;
    // 输入: 123-->num1, a -->charValue, 456-->num2
    // 技巧: 无论想接收什么类型的数据, 只要有需要一次性接收多个, 就给每一个数据之间加上固定的符号作为分隔符(例如: ,)
    scanf("%i-%c-%i", &num1, &charValue, &num2);
    
    // 3.将接收到的两个数相加
//    int result = (num1 + num2);
    
    // 4.输出两个数验证结果
//    printf("result = %d", result);
    
    printf("num1 = %i, char = %c , num2 = %i", num1, charValue, num2);
     */
    
    // 3.\n问题
    int number, number2;
    // \n代表换行
    // 如何告诉scanf函数我们输入完毕? 回车 == \n
    // 因为回车是scanf的结束符, 所以不能在scanf的格式化字符串末尾写上\n
    // 如果不小心把\n放到了scanf格式化字符串的末尾, 也可以破, 原样输入或输入一个不匹配的类型
    scanf("%i\n%i\n", &number, &number2);//这个分割符千万不要用\n,不能出现
    printf("number = %i , number2 = %i\n", number, number2);
Day3.运算符及if

运算

  1. 类型转换
    自动类型的提升, 将参与运算的数据都转换为同一类型后再运算,会自动将小的数据类型提升为大的数据类型。
// 在算术运算中, 参与运算的是什么类型, 计算出来就是什么类型
//    double result = 1.0 / 2; // 1.0 / 2.0 --> 0.5
//    double result = (double)1 / 2;// 1.0 / 2.0 --> 0.5
    double result = (double)(1 / 2); // (double)(0) --> 0.0
    printf("result = %lf\n", result);
     */
  1. 运算符(主要注意%)
    // 注意: 取模运算只能用于整数
//    result = 10.0 % 3.0;错误
    // 取模运算的正负性取决于左边的操作数, 如果左边为负数, 那么结果就是负数
//    result = 10 % -3;结果 1
//    result = -10 % -3;结果 -1
//    result = -10 % 3;结果 -1
    // 如果取模运算的左边小于右边, 那么结果就是左边
//    result = 2 % 9; 结果2

总结一句话: ++在前, 先自增再运算, ++在后, 先运算再自增
  1. sizeof简介(主要用来运算字节数)
  • sizeof可以用来计算一个变量或一个常量、一种数据类型所占的内存字节数
  • 注意: sizeof是一个运算符, 不是一个函数利用sizeof计算的格式: sizeof(变量/常量/数据类型);
  1. 逗号运算符
 // 逗号运算符的结果是 最后一个表达式的结果
    int a = 10;
    int b = 5;
    //   6       a = 10 + 5 = 15 b = 5 + 1 = 6
    int result = ((a = a + 5), (b = b + 1)); // 仅仅作为了解
    printf("a = %i, b = %i, result = %i\n", a, b, result);
结果15, 6, 6
  1. 三目运算符格式: 条件表达式 ? 结果A : 结果B
    // 结合性: 从左至右
    // 只要条件表达式为真就返回结果A, 如果条件表达式为假, 那么就返回结果B
    // a大于b吗? 如果a大于b就返回a, 否则返回b
    // int result = (a > b)? a : b;
// arc4random_uniform方法会根据传入的整数生产一个随机数
    // 生成的值就是 0~(N-1)的值
    int cmp =  arc4random_uniform(3);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,135评论 6 514
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,317评论 3 397
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,596评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,481评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,492评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,153评论 1 309
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,737评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,657评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,193评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,276评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,420评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,093评论 5 349
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,783评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,262评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,390评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,787评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,427评论 2 359

推荐阅读更多精彩内容