一:指针

  1、关于指针的含义---粗略

  例如:int a=10;

     int* p=&a;

     这里的*,是说明p是指针变量,int 说明p是指向的对象是int类型的

     *p=20, 这里的*是解引用符,意思是通过p中存放的地址,找到p所指向的对象,*p就是p指向的对象

  2、关于指针的大小

    指针变量的大小取决于地址存放所需要多大的空间

    32位机器上面的地址:32bit----4字节,所以指针变量的大小是4字节

    64位机器上面的地址:64bit----8字节,所以指针变量的大小是8字节

    例如:

   int *p1;
char *p2;
float *p3;
double *p4;
printf("%zu\n", sizeof(int *));
printf("%zu\n", sizeof(char *));
printf("%zu\n", sizeof(float *));
printf("%zu\n", sizeof(double *));

  结果就是:

    8
    8
    8
    8

  

二:关键字

  define-----预处理指令,不是关键字

三:循环

  1、if-else

  如果没有{}这个的话,else与最近的if进行匹配,例如:

#include <stdio.h>
int main()
{
int a = 0;
int b = 10;
if (a == 1)
printf("congratulations!");
if (b == 10)
printf("good");
else
printf("bad"); printf("");
return 0;
}

  结果是:good

  然而我想要的结果不是这个,所以需要一个大括号来进行相对应的匹配

 1 #include <stdio.h>
2 int main()
3 {
4 int a = 0;
5 int b = 10;
6 if (a == 1)
7 {
8 printf("congratulations!");
9 if (b == 10)
10 {
11 printf("good");
12 }
13 }
14 else
15 {
16 printf("bad");
17 }
18 printf("");
19 return 0;
20 }

  这次代码的结果就是我想要的:bad

  2、判断小提示

    建议需要用到判断的时候,能将数字放在左边,变量放在右边,例如:

1 if (1 == a)
2 {
3 printf("congratulations!");
4 if (10 == b)
5 {
6 printf("good");
7 }
8 }

    当然了,我之前的代码就是不大好,没有这样做,如果粗心的话,少了一个等号啥的,就可以报错了(前提条件下:左边是变量)

  3、switch-case

    这个语句可以嵌套,一个break只能跳出当前的switch-case语句;如果没有break的话,会找到符合条件的case语句下面,之后一直运行,直到之后的全部运行完成

  4、字符的输入

    当希望从键盘上面输入一个字符的时候,可以用到这个函数-----getchar()来进行输入,但是这个函数和库函数里面的scanf()函数差不多,这个两个函数在输入的时候,都需要把键盘里面的数据放入缓存区内部,就像下面图片的内容:

scanf() 缓存区 键盘
getchar() 缓存区 键盘

    这上面的表格就是,从键盘上面输入,进入缓存区,之后就是这两个可以从缓存区来获得数据,但是这两个获取数据的多少不大相同,就比如下面的一个例子:

 1 #include <stdio.h>
2 int main()
3 {
4 char passward[20] = {0};
5 printf("请输入密码:>");
6 scanf("%s", passward);
7
8 // getchar();//粗略的把换行符获得,只是单个单词/词语,如果想要一行的话,就会出现错误
9 int ch = 0;
10 while ((ch = getchar()) != '\n')
11 {
12 ;
13 }
14 /*
15 这里是每次循环都会从缓存区内取出下一个字符,并赋值给ch,循环体内是空字符,所以这个循环只有读取与丢弃,不做任何处理,直到这个循环遇到
16 换行符'\n',这个循环才会直接退出。原因是:这个无论是scanf还是getchar,都需要把从键盘里面获取的数据,放置到缓存区内,包括换行符而
17 getchar遇到换行符'\n',也会执行换行符的操作,所以,接下来的操作可能会受到影响,故希望运用一个东西来把这个问题给处理了,所以可以用到
18 while这个空循环
19 */
20 printf("请确认密码:Y/N:>");
21 char ret = getchar();
22 if ('Y' == ret)
23 {
24 printf("yes\n");
25 }
26 else
27 {
28 printf("no\n");
29 }
30
31 return 0;
32 }

    注:这里的一些注释可能有些冗杂,见谅

最后,希望lol能有个冠军,今年the shy回归,希望能那个冠军下来,今天早上的blg尽力了,但是奈何飞科的加里奥摧毁了全华班夺冠的希望,破损了,感觉机会不是很大了,毕竟飞科都28了,但是加油呀,大家

重温c语言之,7天开整,就是随便的写写,第三天+第四天版的更多相关文章

  1. C语言的几种取整方法

    C语言的几种取整方法 来源:http://blog.sina.com.cn/s/blog_4c0cb1c001013ha9.html 1.直接赋值给整数变量.如: int i = 2.5; 或 i = ...

  2. ubuntu语言支持打不开,点了没反应

    ubuntu语言支持打不开,点了没反应 sudo dpkg-reconfigure locales

  3. 重温C语言小感

    这周对我感触比较大的就是重温了下C语言,当然重点还是放到了指针那块,一看到指针就想到了链表,还有那个 指针申明,“函数指针”,“指针函数”, “使用指针实现数组降维数”,还有就是大学初学编程的点滴. ...

  4. Go语言类型(布尔、整型、数组、切片、map等)

    1.基本类型 布尔类型:bool 注意:布尔类型不能接受其他类型的赋值,不支持自动或强制的类型转换. 整型:int8.byte(uint8).int16.int.uint.uintptr int.ui ...

  5. [日常] Go语言圣经--作用域,基础数据类型,整型

    go语言圣经-作用域 1.一个声明语句将程序中的实体和一个名字关联,比如一个函数或一个变量 2.一个变量的生命周期是指程序运行时变量存在的有效时间段;声明语句的作用域对应的是一个源代码的文本区域,它是 ...

  6. C语言正整数除法向上取整

    在网上发现一个简单的向上取整方法: 这里我们用<>表示向上取整,[]表示向下取整,那么怎么来表示这个值呢? 我们可以证明: <N/M>=[(N-1)/M]+1    (0< ...

  7. 重温C语言(1)----计算算术表达式的值

    <C程序设计语言>练习题 5-10 编写程序 expr,计算从命令行输入的逆波兰表达式的值,其中每个运算符或操作数用一个单独的参数表示.例如,命令 expr 2 3 4 + * 计算表达式 ...

  8. 计算机二级-C语言-字符数字转化为整型数字。形参与实参类型相一致。double类型的使用。

    //函数fun功能:将a和b所指的两个字符串分别转化成面值相同的整数,并进行相加作为函数值返回,规定只含有9个以下数字字符. //重难点:字符数字转化为整型数字. #include <stdio ...

  9. 开扒php内核函数,第三篇 implode

    一开始觉得implode挺容易实现,但是写着写着才发现是挺复杂的,不说啦 来看看implode的用法吧 <?php $arr = array('Hello','World!','Beautifu ...

  10. 前端开发面试题总结之——JAVASCRIPT(三)

    ___________________________________________________________________________________ 相关知识点 数据类型.运算.对象 ...

随机推荐

  1. CF Div3 962 E-F

    CF Div3 962 E-F E. Decode 链接: Problem - E - Codeforces 简要题意: 给你一个长度为 \(n\) 的二进制字符串\(s\) .对于每一对整数\((l ...

  2. 推荐2款实用的持续集成与部署(CI&CD)自动化工具

    前言 最近DotNetGuide技术社区交流群有不少同学在咨询:持续集成与部署(CI&CD)自动化工具有什么好用的推荐?今天大姚给大家推荐2款实用且免费的持续集成与部署(CI&CD)自 ...

  3. python的dir()函数

    dir()函数不带参数时,返回当前范围内的变量.方法和定义的类型列表:

  4. 通过 GitHub Actions 实现代码的自动编译和发布

    GitHub Actions 是一个非常强大的工具,可以用来实现各种自动化任务,包括自动编译和发布 release.以下是一个基本的工作流程,展示如何使用 GitHub Actions 实现这一目标: ...

  5. Shell 避免无限递归

    在编写 Shell 脚本时,有时会产生我们不期望的递归. 比如说,我曾经写过一个脚本,名为 foo.sh. foo.sh 的内容如下: function foo { # TODO } foo 然后我在 ...

  6. 【2019年第一篇总结】之Mac安装Python系列软件目录汇总

    1.第一步,安装Python环境 <[Mac + Python]苹果系统之安装Python3.6.x环境> 2.安装PyCharm并激活 <[转载][Pycharm编辑器破解步骤]之 ...

  7. 基于 Quanto 和 Diffusers 的内存高效 transformer 扩散模型

    过去的几个月,我们目睹了使用基于 transformer 模型作为扩散模型的主干网络来进行高分辨率文生图 (text-to-image,T2I) 的趋势.和一开始的许多扩散模型普遍使用 UNet 架构 ...

  8. Java并发编程之验证volatile指令重排-理论篇

    Java并发编程之验证volatile指令重排-理论篇 Java并发包下的类中大量使用了volatile关键字.通过之前文章介绍,大家已经知道了volatile的三大特性:共享变量可见性:不保证原子性 ...

  9. OpenCV开发笔记(八十):基于特征点匹配实现全景图片拼接

    前言   一个摄像头视野不大的时候,我们希望进行两个视野合并,这样让正视的视野增大,从而可以看到更广阔的标准视野.拼接的方法分为两条路,第一条路是Sticher类,第二条思路是特征点匹配.  本篇使用 ...

  10. [C#基础1/21] C#概述

    Notion原笔记 1. C# 简介 1.1 C# 定义 C# 在继承 C 和 C++ 强大功能的同时去掉了一些它们的复杂特性,使其成为 C 语言家族中的一种高效强大的编程语言 1.2 C# 用途 用 ...