C语言入门part1—大致知识点梳理(上篇)

**关键字:**变量常量,全局变量局部变量,字符串+转义字符+注释,sizeof,求数据类型范围(举例char类型),原码反码补码,scanf等等杂七杂八

变量

  • 全局变量
  • 局部变量

#include<stdio.h>
int a = 10;//全局变量,作用于整个工程(即可运用于该工程下的其他.c文件,使用前需用extern+所要调用全局变量的类型+变量名调用),整个程序完全运行完时失效。定义后若未初始化(赋值)则值默认为0
int main()
{int a = 2;//局部变量,作用于当前{}内部,函数运行完则失效,需在使用前初始化,否则默认值为随机值printf("a=%d", a);return 0;
}

BY THE WAY
全局变量和局部变量若名称一样,则优先使用局部变量,如上述程序中执行结果为a=2。

常量

  • 字面常量
    int a=80;其中80就是一个字面常量
  • const修饰的常变量
    const int a=80;其中被const所修饰的a即为一个常变量,后续不可被更改,且必须初始化
  • #define定义的修饰符常量
    #define a 80
  • 枚举常量
enum sex
{
MALE,
FAMALE//打印的时候若第一个没初始化则从0开始依次赋值,若赋值则从赋的值开始依次往后赋
}

枚举和define常量区别:

  • define定义的常量不可以进行调试;

  • define定义的标识符不具有类型,枚举有类型(如下方A,B,C就是day型)

字符串
打印字符串使用格式化输出%s打印,但%s遇\0结束

#include <stdio.h>
int main()
{char *str = "hello";//字符串,由双引号引起来的一串内容,并且以\0结尾,结束的标志char arr1[] = "hello";//字符数组,由\0结尾char arr2[] = { 'h', 'i' };//字符数组char arr3[] = { 'h', 'i', '\0' };//字符数组printf("%s\n", str);printf("%s\n", arr1);printf("%s\n", arr2);printf("%s\n", arr3);return 0;
}

转义字符
\r回车,回到这一行的行首且把之前的内容刷走
一般常用:

  • \n回车
  • \t制表符,空格
  • \ddd 三位八进制,打印出来是十进制数
 printf("%d\n", '\13');//输出结果为11
  • \xddd,虽说可以跟三位十六进制数,打印结果是十进制数,但实际由于字符取值范围受限,所以最高位为0
 printf("%d\n", '\x25');//输出结果为37
 printf("%c\n", '\'');    //输出结果为'printf("%s\n", "\"");    //输出结果为"
 printf("%d\n", strlen("abcdef"));    //输出结果为6printf("%d\n", strlen("c:\test\328\test.c"));//输出结果为14,系统默认\t为一个字符,\32是一个字符(之所以不认为\328是一个字符是因为328(八进制)转十进制为216超出了字符可标识的数值范围)

Strlen();用来求字符串长度 是库函数,需要调用<string.h>,也是遇到\0停止

注释

  • 块注释(不能嵌套)
  • 行注释

sizeof
不是库函数,是关键字,求所占字节大小,单位为字节
对于变量来说,如下两种写法都正确

 printf("%d\n", sizeof(a));printf("%d\n", sizeof a);

但对于求字符类型所占字节大小,必须带括号
printf("%d\n", sizeof(int));

scanf

  • scanf("%d",&a);&取地址符号,必用
  • vs中可能会提示 error C4996: ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    解决方式:在最上方加入
    #define _CRT_SECURE_NO_WARNINGS 1

求数据类型范围(举例char类型)

  1. char类型占一个字节,一个字节八个比特位,分为有符号类型和无符号类型
  2. 无符号类型范围0000 0000—1111 1111即 0—28-1
  3. 有符号类型范围-128~127即-27 —27-1
    a.最高位充当符号位
    b.须知计算机中存储数据正数存二进制,负数存其补码,当127(即0111 1111)加1变为1000 0000,认为它为1 1000 0000,所以为-128
#include<stdio.h>
int main()
{char i=0;for (i = 0; i < 130; i++){printf("%d", i);}return 0;
}
//该程序是死循环,因为带符号char类型表示范围-128~127,所以i永远不可能大于130

BY THE WAY

  • 一般数据类型前不加东西表示该数据为带符号型数据,若想表示不带符号的数据则在数据类型前加unsigned
  • %d表示有符号形式的整型打印
  • %u表示无符号形式的整型打印

原码反码补码

  • 正数的原码反码补码都是他自己本身
  • 负数原码 最高位为1,其他位为数值位(-1原码1000 0001);反码:符号位不变,其他位取反(1111 1110);补码:原码符号为不变,其余按位取反再加1(1111 1111),

乱七八糟

#include<stdio.h>//引用头文件,#预处理
int main()
{printf("%d", i);//printf库函数return 0;//程序正常结束
}

c++和java中有字符串类型,但c中没有,c中定义字符串方法:

char *p="hello";

C语言入门part1—大致知识点梳理(上篇)相关推荐

  1. C语言入门part2—大致知识点梳理(中篇)

    C语言入门part2-大致知识点梳理(中篇) 关键字: 选择语句,循环语句,函数,数组,操作符,if(a >= 15 && a <= 20)和 if( 15 <= a ...

  2. C语言入门part4—大致梳理最终篇

    C语言入门part4-大致梳理最终篇 关键字:关键字define,内存,指针,结构体 C语言入门part1 C语言入门part2 C语言入门part3 define 定义一个标识符常量,后面一般不加分 ...

  3. python爬虫基础知识点_入门Python爬虫知识点梳理

    [小宅按]爬虫基本原理就是通过网络请求从远程服务器下载数据的过程,而这个网络请求背后的技术就是基于 HTTP 协议.作为入门爬虫来说,用户需要了解 HTTP协议的基本原理,虽然 HTTP 规范用一本书 ...

  4. C语言入门Part 3—大致梳理(中篇)

    C语言入门Part 3 关键字: 常见关键字介绍及用法,static 和 extern区别与联系,typedef和#define区别 C语言入门part1 C语言入门part2 常见关键字 auto ...

  5. C语言入门part5

    C语言入门part5 关键字:break和continue的注意事项,EOF,getchar和putchar的,scanf和getchar()的坑,各种经典深坑(循环的判断条件,逻辑或符号的运用||, ...

  6. C语言入门Part8--操作符篇

    C语言入门Part8–操作符篇 关键字: 各种操作符的介绍, 表达式求值(整型提升,算术转换) C语言入门part1 C语言入门part2 C语言入门part3 C语言入门part4 C语言入门par ...

  7. C语言入门Part7--数组篇

    C语言入门Part7–数组篇 **关键字:**数组常见问题及注意事项总结,字符串定义,一维数组在内存中的存储,sizeof()求数组长度的注意事项,sizeof()的用法注意,sizeof()和str ...

  8. C语言入门part6--函数

    C语言入门part6–函数 关键字:库函数,自定义函数,函数的嵌套调用及链式访问,递归,strlen 和sizeof的区别,* p++和(*p)++的区别 C语言入门part1 C语言入门part2 ...

  9. c语言around用法,around的用法知识点梳理

    around的意思是在四周,他常常作为副词使用,下面小编把它的知识点总结给大家! 释义 around adv. 在四周;朝对立面;到处;漫无目的地;在附近;大约;围绕;以圆周计算;现有;转弯 prep ...

最新文章

  1. 【Python】随机函数
  2. c++ 查找文件夹下最新创建的文件_Linux文件查找进阶知识,find命令的用法及解读...
  3. Linux命令篇之usermod命令和passwd命令
  4. Android5.x新特性之 Toolbar和Theme的使用
  5. 初学者浅谈我对领域驱动设计(DDD)的理解
  6. linux下JNI的demo
  7. wxWidgets:通过组合现有小部件制作新的可重用小部件
  8. python调用打印机驱动下载_selenium的Python使用(一)浏览器驱动的安装及使用
  9. 概率论-2.4 常用离散分布(待补充期望方差证明)
  10. 学习笔记之四_Cisco系统IOS和安全设备管理系统SDM(CCNA知识考点)
  11. python类方法和实例方法syntax errors_《Fluent Python》CH.11_面向对象_接口:从协议到抽象基类...
  12. 力扣——合并K个排序链表
  13. 3Dmax软件安装问题解决方法
  14. rufus 制作U盘启动工具
  15. 百度云搭建微信公众平台服务器,微信大众开放平台开发03-百度BAE上搭建属于自己的微信公众平台 -JAVA,微信公众开放平台部署到百度云中BASE2.0,进行调试,木有钱买云服务器的亲们试试...
  16. [每周一读]——不让时间偷走你的成功
  17. mysql-数据库的创建
  18. STS lesson one : p
  19. SpringBoot访问jar包静态文件
  20. 声学中自由场、扩散场、压力场的定义

热门文章

  1. 色调、锐度、对比度、饱和度
  2. mesh repair
  3. Verilog HDL语言入门(二)
  4. Python03(注释、算术运算符、程序执行原理、变量使用)
  5. Ubuntu安装cuckoo
  6. 【Linux】进程间通信(学习复习兼顾)
  7. 图论 物联网_物联网工程题目 物联网在医疗领域的应用
  8. 数据中心网络设备管理(二)
  9. HTTP常见报错原因 :401 、403、404、500等
  10. 什么是:产品专员、产品经理、产品总监、产品副总?