C语言基础学习笔记内容简单说明:初始c语言部分只是大概了解一下c语言的内容,很多地方不会深入探究,因为后面的章节会进行详细的讲解。
说明:我是一个初学c语言的小白,很多地方都不是很理解,所以就会自己动手敲代码进行相应的推理验证,希望可爱的你在看到这些步骤时,不要嫌弃我啰嗦。(比如吐槽:这作者咋这样呀,这么简单的还要敲代码验证,真菜呀!…我:好吧,我不装了,我摊牌了,我确实菜,真的菜,咋滴啦,还不允许初学者菜呀!)
内心独白:上一篇文章发布后,没想到阅读和支持的小可爱那么多,真的是非常感谢大家!也希望我的博客文章可以真正的帮助到每一个还在编程路上探索,摸爬滚爬…摸爬勒塔…摸爬滚摸…滚塔…滚勒…摸了摸…摸它滚塔…摸爬!摸爬滚塔!…摸爬滚打。(这普通话可真烫嘴QAQ…)


4.常量

c语言中的常量分为以下4种:
字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量
①字面常量:1 100 3.14 22 A 等等…
②const修饰的常变量
变量是可以变化的值,但是被const修饰后,这个变量就不能变了


虽然被const修饰的变量叫做常变量,具有常属性,但其本质仍然是变量,而不是常量,所以不能放到数组的方括号[]中


③#define定义的标识符常量 举例: #define Max 10

④枚举常量 枚举:一一列举 例如 性别:男、女、保密
三原色:红、黄、蓝 星期:周一……周日
枚举关键字 enum
例如

enum Sex
{male,female,secert
};

其中male,female,secert就是枚举常量,枚举常量实际是有值的,我们可以将其值打印出来如下: enum Sex s 是枚举类型变量


5.字符串 + 转义字符 + 注释

①字符串
“hallo world” 这种由双引号引起来的一串字符称为字符串字面值,简称字符串
“” – - 空字符
注意:字符串的结束标志是一个 \0的转义字符。在计算字符串长度的时候\0是结束标志,不算做字符串的内容
用数组存储字符串的时候,数组的长度需要将\0计算上,只是单独计算字符串长度时不计算\0

int main()
{char arr1[] = "abc";char arr2[] = { 'a','b','c' };printf("%s\n", arr1);printf("%s\n", arr2);return 0;
}

#include<stdio.h>
#include<string.h>
int main()
{char arr1[] = "abc";char arr2[] = { 'a','b','c' };int a1 = 0;int a2 = 0;a1 = sizeof(arr1) / sizeof(arr1[0]);a2 = sizeof(arr2) / sizeof(arr2[0]);printf("%s\n", arr1);printf("%s\n", arr2);printf("a1 = %d\n", a1);printf("a2 = %d\n", a2);printf("Length of arr1 :%d\n", strlen(arr1));printf("Length of arr2 :%d\n", strlen(arr2));//没有结束标志,随机值return 0;
}


用F10(或Fn + F10)调试,打开监视窗口查看数组arr1,arr2

这里我们看到’a’前面有一个值97,这个是a的ASCII值

②转义字符
转义:转变原本含义 使其具有其他含义 一个转义字符的长度为1,例如\t 长度为一,不能计算成2,另外\0不计算到字符串的长度当中,仅当作字符串结束的标志。

#include<stdio.h>
int main()
{printf("c:\code\test,c\n");return 0;
}


调试:转义


③注释
注释有两种风格
/* */ c语言风格 缺陷:不能嵌套注释
// c++语言风格 (推荐)


6.选择语句

在我们的生活中,会有各种各样的选择,不同的选择,往往带来不同的结果。
在我们的人生中,也会遇到各种各样的选择,不同的选择会决定我们今后不同的人生轨迹。

#include<stdio.h>
//选择语句,人生会遇到各种各样的选择,选择不同,人生道路也会有所不同
int main()
{int a;printf("你会好好学习编程吗?:(1:会 0:不会)>>\n");scanf("%d", &a);if (a == 1)printf("好offer\n");elseprintf("loser\n");return 0;
}


if (条件判断) { 执行语句 }
else { 执行语句 }


7.循环语句

很多事情需要一直去做,比如老师需要日复一日,年复一年去教学。学习编程需要每天都去敲代码。

#include<stdio.h>
int main()
{int line = 0;while (line <= 100000){printf("敲一行代码\n");line++;}if (line > 100000)printf("你可以得到一个好offer\n");return 0;
}


while(条件判断)
{
循环体
}


8.函数

简化代码,代码复用,分为自定义函数、库函数

int Add(int x, int y)
{int z = x + y;return z;
}
int main()
{int a = 10;int b = 30;int sum = 0;int num1 = 100;int num2 = 200;sum = Add(a, b);printf("sum = %d\n", sum);sum = Add(num1, num2);printf("sum = %d\n", sum);return 0;
}


函数返回类型 函数名(函数参数类型 函数参数1,函数参数类型 函数参数2…)
{
函数体
}


9.数组

用于存放一组相同数据类型的数据变量,数组的下标[]从0开始计算,a[0]代表第一个元素,具有n个元素的数组,其下标最大为n - 1。

#include<stdio.h>
int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };int i = 0;while (i < 10){printf("%d ", arr[i]);i++;}return 0;
}


10.操作符

(1)算术操作符
加法操作符 + 双目操作符 使两个数相加 1 + 2 = 3
减法操作符 - 双目操作符 使两个数相减 2 - 1 = 1
乘法操作符 * 双目操作符 使两个数相乘 2 * 3 = 6
除法操作符 / 双目操作符 使两个数相除,得到商 5 / 2 = 2
取模操作符 % 双目操作符 使两个数相除,得到余数 5 % 2 = 1
/ 两端均为整数的时候,执行整数除法;
两端只要有一个是小数,则执行小数除法。

#include<stdio.h>
int main()
{int a = 2;int b = 5;int c = b % a;printf("a+b = %d\n", a + b);printf("b-a = %d\n", b - a);printf("a*b = %d\n", a * b);printf("b/a = %d\n", b / a);printf("b%%a = %d\n", c);return 0;
}


(2)移位操作符:针对的是二进制的操作
左移:二进制左边丢弃,右边补0
例如:十进制的5 二进制为00000000 00000000 00000000 00000101
左移2位后变成:00000000 00000000 00000000 00010100 十进制为20
右移:跟左移类似,但是要注意右移后其正负号不变,也就是二进制最高位不变
十进制的5 二进制为00000000 00000000 00000000 00000101
右移2位后变成:00000000 00000000 00000000 00000001 十进制为1

#include<stdio.h>
int main()
{int a = 5;int b = 0;int c = 0;b = a << 2;//a本身的值并不会变c = a >> 2;printf("a<<2 = %d\n", b);printf("a>>2 = %d\n", c);return 0;
}

(3)位操作符 二进制操作符
c语言中0表示假,非0表示真
按位与 & 011 & 101 = 001 即3 & 5 = 1
按二进制位,一假则假,二真才真
按位或 | 011 & 101 = 111 即3 & 5 = 7
按二进制位,一真则真,二假才假
按位异或 ^ 011 & 101 = 110 即3 & 5 = 6
按二进制位,相同为假,相异为真

#include<stdio.h>
int main()
{int a = 3;int b = 5;printf("a&b = %d\n", a & b);printf("a|b = %d\n", a | b);printf("a^b = %d\n", a ^ b);return 0;
}


(4)赋值操作符
赋值(等于) = 例如:a = 4; 给a赋值为4
[== 判断是否相等 注意区分 = 与 == ]
加等于 += 例如 a += 3 等价于 a = a + 3
减等于 -= 例如 a -= 3 等价于 a = a - 3
乘等于 *= 例如 a *= 3 等价于 a = a * 3
除等于 /= 例如 a /= 3 等价于 a = a / 3
按位与等于 &= 例如 a &= 3 等价于 a = a & 3
按位异或等于 ^= 例如 a ^= 3 等价于 a = a ^ 3
按位或等于 |= 例如 a |= 3 等价于 a = a | 3
按位左移等于 >>= 例如 a >>= 3 等价于 a = a >> 3
按位右移等于 <<= 例如 a <<= 3 等价于 a = a << 3

#include<stdio.h>
int main()
{int a = 5;printf("a = 3--->%d\n", a = 3);printf("a += 3--->%d\n", a += 3);printf("a -= 3--->%d\n", a -= 3);printf("a *= 3--->%d\n", a *= 3);printf("a /= 3--->%d\n", a /= 3);printf("a &= 3--->%d\n", a &= 3);printf("a ^= 3--->%d\n", a ^= 3);printf("a |= 3--->%d\n", a |= 3);printf("a = 9--->%d\n", a = 9);printf("a >>= 3--->%d\n", a >>= 3);printf("a <<= 3--->%d\n", a <<= 3);return 0;
}


(5)单目操作符
逻辑反操作 ! c语言中0为假 一切非0为真 对0进行逻辑反操作!0 = 1(真 固定值1) 对非0进行逻辑反操作 !2 = 0(假)
负值 - 得到负数 如 - 2 = -2 (负2) - ( - 2) = 2
正值 + 例如 2 实际为 + 2 只是一般 + 号省略了
取地址 & 得到一个变量相应的地址编码
类型长度 sizeof()得到一个变量或者类型的长度,以字节为单位
用sizeof来计算数组元素个数 sizeof(a) / sizeof(a[0])
按位取反 ~对一个数的二进制按位取反
例如 1011 按位取反后为 0100 ,数据在计算机中存储的是二进制的补码,使用的是原码 原码按位取反(符号位不变) 得到反码 反码 + 1得到补码 补码 - 1 得到反码 反码按位取反(符号位不变)得到原码
前置、后置-- --自减
前置、后置++ ++自增
解引用操作符 * 间接访问操作符
强制类型转换 (类型) 例如:(int)强制转换为int类型 (char)强制转换为char类型

#include<stdio.h>int main()
{int a = 2;double b = 4.11;int c = 97;printf("!a = %d\n", !a);printf("-a = %d\n", -a);printf("+a = %d\n", +a);printf("&a = %d\n", &a);printf("sizeof(a) = %d\n", sizeof(a));printf("~a = %d\n", ~a);printf("++a = %d\n", ++a);printf("a++ = %d\n", a++);printf("--a = %d\n", --a);printf("a-- = %d\n", a--);printf("*(&a)= %d\n", *(&a));printf("(int)b = %d\n", (int)b);printf("(char)a = %c\n", (char)c);return 0;
}


(6)关系操作符
大于 > 用于判断或测试 大于
大于等于 >= 用于判断或测试 大于等于
小于 < 用于判断或测试 小于
小于等于 <= 用于判断或测试 小于等于
是否不相等 != 用于判断或测试 不相等
是否相等 == 用于判断或测试 相等
(7)逻辑操作符
逻辑与 && (表达式1) && (表达式2) 同真为真一假则假 举例(1 < 2) && (2 > 3) 为假 (1 < 2) && (2 < 3) 为真
逻辑或 || (表达式1) || (表达式2) 同假为假一真则真 举例(1 < 2) || (2 > 3) 为真 (1 > 2) || (2 > 3) 为假
(8)条件操作符
exp1 ? exp2 : exp3 表达式exp1 为真 则整个表达式exp1 ? exp2 : exp3的值为 exp2 否则为 exp3
(9)逗号表达式
exp1, exp2, exp3, ……expN
(10)下标引用、函数调用和结构成员
下标引用[] 比如数组 a[0] 代表第一个元素
函数调用 () Add(a, b)
结构成员 .->Std.name Std->name Std是结构体变量

【C语言基础学习笔记】一、初始C语言(2)相关推荐

  1. 《C语言基础学习笔记》—— 黑马程序员 <Part1-4>

    <C语言基础学习笔记 Part1-4> Part 1 基础介绍 1. 第一个C语言程序:HelloWorld 1.1 编写C语言代码:hello.c 1.2代码分析 1)include 头 ...

  2. go语言基础学习笔记完整版

    目录 背景 基础 helloworld 变量 常量 数据类型 基本数据类型与复杂数据类型 值类型与引用类型 查看变量类型 字符与字符串 类型转换 指针 打包 读取控制台数据 for-range遍历 生 ...

  3. C#语言基础学习笔记

    0. 环境准备 0.1 简介 C#又称"C Sharp",是微软发布和维护的一个现代的.通用的.面向对象的编程语言,是专为公共语言基础结构(CLI,由可执行代码合运行时环境组成,允 ...

  4. Go语言基础学习笔记

    Golang官方文档: 点击进入 尚硅谷视频:点击进入 目录 01.标识符 1.1.命名规则 1.2.标识符命名规范 1.3.go运算符优先级 02.数据类型 2.1.Go中数据类型分类 变量与常量 ...

  5. 【C语言基础学习笔记】三、函数(1)

    我走了很远的路,吃了很多的苦,才将这份博士学位论文送到你的面前.二十二在求学路,一路风雨泥泞,许多不容易.如梦一场-这一路,信念很简单,把书念下去,然后走出去,不枉活一世-理想不伟大,只愿年过半百,归 ...

  6. Java语言基础学习笔记——基础语法

    一.标识符 1:取名必须以_,$或者字母开头 2:变量必须先声明,赋值后才能使用 3:内存管理 4部分:1) code segment 存放代码                             ...

  7. 夜光:Java语言基础学习笔记(三)在校资源

    夜光序言: 青青子衿,悠悠我心. 纵我不往,子宁不嗣音? 青青子佩,悠悠我思. 纵我不往,子宁不来? 挑兮达兮,在城阙兮. 一日不见,如三月兮. 正文:流程控制语句 结构化程序的三种结构 顺序结构 选 ...

  8. c语言基础学习笔记(三):条件判断语句if-else嵌套和switch-case语句

    文章目录 if判断(条件判断) if语句 优先级 else语句 超市找零代码示例 两数比大小程序示例 if语句没有大括号 计算薪水程序示例 判断成绩及格示例 if-else嵌套 三个数比大小 级联的i ...

  9. 《Go语言圣经》学习笔记 第一章 Go语言入门

    Go语言圣经学习笔记 第一章 Go语言入门 目录 Hello, World 命令行参数 查找重复的行 GIF动画 获取URL 并发获取多个URL Web服务 本章要点 注:学习<Go语言圣经&g ...

  10. guido正式发布python年份_Python 基础学习笔记.docx

    Python 基础学习笔记 基于<Python语言程序设计基础(第2版)> 第一部分 初识Python语言 第1章 程序设计基本方法 1.1 计算机的概念 计算机是根据指令操作数据的设备, ...

最新文章

  1. phpStudy项目目录无法访问(报错500、400)
  2. EXE 文件打不开的处理办法
  3. 《高性能JavaScript》第一章 加载和执行
  4. 颠覆传统4S店,特斯拉发布智能售后服务体系
  5. oracle 等频直方图,等频直方图预估结果集行计算公式
  6. [集合]线程安全的HashMap
  7. mysql函数封装_PHP访问MYSQL数据库封装类(附函数说明)
  8. multisim连接MySQL_首次使用Multisim软件进行电路仿真设计
  9. 基于 FFMPEG 的音频编解码(三):音频编码
  10. Seata多微服务互相调用_全局分布式事物使用案例_Order-Module order微服务的配置搭建_写代码上---微服务升级_SpringCloud Alibaba工作笔记0061
  11. git使用git push 命令跳出remote: Permission to Aname denied to usernameB 的问题
  12. 梦笔记20211017
  13. 服务器显示器分辨率,屏幕分辨率修改
  14. 来几个有趣的Linux指令 (转自Chinaitlab)
  15. SLIC 超像素分割(C++)
  16. /proc/sys/vm/drop_caches
  17. ELK之Kibana入门及使用
  18. 台式计算机启动时 每次按f1,开机按f1的解决方法_电脑开机每次都要按F1,怎么解决...
  19. netgen.5.0.0下载地址与Windows下编译方法
  20. 如何用matlab画出正螺面,matlab中的螺旋网格

热门文章

  1. DRM 驱动程序开发(VKMS)
  2. 新加坡经验:大数据时代政府的角色
  3. 上海数学高考 计算机,编程已进入高考?别被广告文洗脑,编程并未纳入上海高考科目!...
  4. 解决关键词这个问题,ASO优化效果事半功倍
  5. 张柏芝-从清纯走向堕落
  6. 2 什么是计算机网络的拓扑结构,什么是网络拓扑?
  7. 【java】对象克隆protected Object clone() throws CloneNotSupportedException
  8. OSChina 周四乱弹 —— 月中发工资还没到家……
  9. 【愚公系列】2022年10月 基于WPF的智能制造MES系统框架-简介
  10. 手机安全卫士(四)----- Splash界面