C语言 汇总笔记(从零开始自学)

1.打印Hello World

#include <stdio.h>
int main()
{printf("Hello World!\n");return 0;
}

2.变量


#include <stdio.h>
int main()
{int a;char b;float c;double d;a = 520;b = 'H';c = 3.14;d = 3.141592653;printf("整形:%d\n", a);printf("字符型:%c\n", b);printf("单精度浮点型:%.2f\n",c);printf("双精度浮点型:%.9f\n", d);return 0;
}

3.常量和宏定义

#include <stdio.h>
#define URL "www.baidu.com"
#define NAME "百度"
#define BOSS "李彦宏"
#define YEAR 2020
int main()
{printf("年份:%d\n网站:%s\n名称:%s\nCEO:%s\n", YEAR,URL, NAME, BOSS);return 0;
}

4.数据类型


#include <stdio.h>
int main()
{int i;char j;float k;i = 123;j = 'C';k = 3.14;printf("int:%d\n",sizeof(int));//4字节printf("%d\n", sizeof(i));//4字节printf("char:%d\n", sizeof(char));//1字节printf("%d\n", sizeof(j));//1字节printf("float:%d\n", sizeof(float));//4字节printf("%d\n", sizeof k);//4字节return 0;}
#include <stdio.h>
int main()
{printf("short:%d\n", sizeof(short));//字节:2printf("int:%d\n",sizeof(int));//字节:4printf("long:%d\n", sizeof(long));//字节:4printf("long long:%d\n", sizeof(long long));//字节:8printf("char:%d\n", sizeof(char));//字节:1printf("_Bool:%d\n", sizeof (_Bool));//字节:1printf("float:%d\n", sizeof(float));//字节:4printf("double:%d\n", sizeof(double));//字节:8printf("long double:%d\n", sizeof(long double));//字节:12return 0;}

  1. signed意思为有符号的,也就是第一个位代表正负,剩余的代表大小,例如:signed int 大小区间为-128-127

  2. unsigned意思为无符号的,所有的位都为大小,没有负数,例如:unsigned int 大小区间为:0-255

  3. 默认为signed

#include <stdio.h>
int main()
{signed short i;unsigned short j;i = -1;j = -1;printf("有符号的:%d\n",i);printf("无符号的:%u\n", j);return 0;
}
//有符号的:-1
//无符号的:65535

5.取值范围



二进制、十进制、十六进制的表示
1、十六进制(英文dao名称:Hexadecimal),是计算机中数据的一种表示方法。同我们日常生活中的表示法不一样。它由0-9,A-F组成,字母不区分大小写。
2、十六进制与10进制的对应关系是:0-9对应0-9;A-F对应10-15;N进制的数可以用0~(N-1)的数表示,超过9的用字母A-F。

符号位

#include <stdio.h>
#include<math.h>
int main()
{int result = pow(2, 32)-1;printf("result:%d\n", result);return 0;
}
//result:2147483647
#include <stdio.h>
#include<math.h>
int main()
{unsigned int result = pow(2,32)-1;printf("result:%u\n", result);return 0;
}
//result:4294967295


6.字符和字符串

字符

#include <stdio.h>
int main()
{char a = 'A';char b = 66;char c = 97;printf("%c=%d\n", a, a);printf("%c=%d\n", b, b);printf("%c=%d\n", c, c);return 0;
}
//A=65
//B=66
//a=97
#include <stdio.h>
int main()
{char height;//取值范围:-128~127unsigned char heights;height = 188;heights = 188;printf("错误身高:%d\n", height);printf("正确身高:%d\n", heights);return 0;
}
//错误身高:-68
//正确身高 : 188

字符串

#include <stdio.h>
int main()
{char name[] = { 'A','P','P','L','E','\0' };char names[] = { "ORANGE" };printf("%s\n", name);printf("%s\n", names);return 0;
}
//APPLE
//ORANGE

7.运算符

算术运算符

关系运算符


逻辑运算符

复合的赋值运算符

自增和自减运算符

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

条件运算符

#include<stdio.h>
int main()
{int max = 0;printf("请输入两个整数:");int a = 0;int b = 0;scanf("%d", &a);scanf("%d", &b);//if (a > b)//{//   max = a;//}//else//{// max = b;//}max = a > b ? a : b;printf("最大的值为:%d", max);return 0;
}
//请输入两个整数:3213 32
//最大的值为 : 3213

8.if语句

#include <stdio.h>
int main()
{int a;printf("请输入你的成绩:");scanf("%d", &a);if (a>=90 && a<=100){printf("优");}else if (a >= 80 && a < 90){printf("良");}else{printf("及格");}return 0;
}
//请输入你的成绩:89
//良

9.switch语句

#include <stdio.h>
int main()
{char a;printf("请输入你的成绩:");scanf("%c", &a);switch (a){case 'A':printf("优");break;case 'B':printf("良");break;case 'C':printf("中等");break;case 'D':printf("及格");break;default:printf("不及格");break;}return 0;
}
//请输入你的成绩:B
//良

10.while语句和do while语句

#include <stdio.h>
int main()
{int i = 1; int sum = 0;while (i<=100){sum = sum + i;i = i + 1;}printf("结果是:%d", sum);return 0;
}
//结果是:5050
#include <stdio.h>
int main()
{int count = 0;printf("请输入一行英语字符:");while (getchar()!='\n'){count = count + 1;}printf("你总共输入%d个字符!\n", count);return 0;
}
//请输入一行英语字符:iphone12
//你总共输入8个字符!
#include <stdio.h>
int main()
{int a = 10;do{printf("a 的值: %d\n", a);a = a + 1;} while (a < 20);return 0;
}
//a 的值: 10
//a 的值: 11
//a 的值: 12
//a 的值: 13
//a 的值: 14
//a 的值: 15
//a 的值: 16
//a 的值: 17
//a 的值: 18
//a 的值: 19

11.for语句和循环嵌套

#include<stdio.h>
int main()
{for (int i = 1; i <= 10; i++){printf("%d\n",i);}return 0;
}
//1
//2
//3
//4
//5
//6
//7
//8
//9
//10
#include<stdio.h>
int main()
{for (int i = 1; i <= 3; i++){for (int j = 1; j <= 3; j++){printf("i=%d,j=%d\n", i, j);}}return 0;
}
//i = 1, j = 1
//i = 1, j = 2
//i = 1, j = 3
//i = 2, j = 1
//i = 2, j = 2
//i = 2, j = 3
//i = 3, j = 1
//i = 3, j = 2
//i = 3, j = 3

12.break语句和continue语句

continue语句

#include<stdio.h>
int main()
{for (int i = 1; i <= 5; i++){if (i == 3){printf("Hello World\n");continue;}printf("%d\n", i);}return 0;
}
//1
//2
//Hello World
//4
//5

break语句

#include<stdio.h>
int main()
{for (int i = 1; i <= 5; i++){if (i == 3){printf("Hello World\n");break;}printf("%d\n", i);}return 0;
}
//1
//2
//Hello World

13.goto语句

#include<stdio.h>
int main()
{int i;for (i = 0; i <= 10; i++){if (i > 5){goto A;}}A:printf("i=%d", i);return 0;
}
//i = 6

14.数组


#include<stdio.h>
int main()
{int a[5];int b[] = {4,3,2,1,0};int c[] = { [1] =315,[2] = 5213 ,[3]=326,[0] = 313 ,[4] = 66 };for (int i = 0; i <5; i++){a[i] = i;}for (int i = 0; i < 5; i++){printf("%d ", a[i]);}printf("\n");for (int i = 0; i < 5; i++){printf("%d ",b[i]);}printf("\n");for (int i = 0; i < 5; i++){printf("%d ", c[i]);}return 0;
}
//0 1 2 3 4
//4 3 2 1 0
//313 315 5213 326 66

15.字符串处理函数

#include<stdio.h>
int main()
{char str1[10] = { 'A','P','P','L','E','\0' };//初始化字符数组的每个元素char str2[] = { 'A','P','P','L','E','\0' };//可以不写元素的个数,因为编译器会自动计算char str3[] = { "APPLE" };//使用字符串常量初始化字符数组char str4[] = "APPLE";//使用字符串常量初始化,可以省略大括号printf("str1=%s\n", str1);printf("str2=%s\n", str2);printf("str3=%s\n", str3);printf("str4=%s\n", str4);return 0;}
//str1=APPLE
//str2=APPLE
//str3=APPLE
//str4=APPLE

#include<stdio.h>
#include<string.h>
int main()
{char str[] = "I Love You!";printf("sizeof str=%d\n", sizeof(str));printf("strlen str=%d\n", strlen(str));return 0;}
//sizeof str = 12 包含字符串最后一个字符\0
//strlen str = 11 不包含字符串最后一个字符\0

strcpy

#include<stdio.h>
#include<string.h>
int main()
{char str1[] = "Remember ONE";char str2[] = "Remember TWO";char str3[100];strcpy(str1, str2);/* 复制 str2 到 str1 */strcpy(str3,"Copy Successful");/* 复制 Copy Successful 到 str3 */printf("str1:%s\n",str1);printf("str2:%s\n",str2);printf("str3:%s\n",str3);return 0;}
//str1:Remember TWO
//str2 : Remember TWO
//str3 : Copy Successful

注意:str1和str2的字符数组长度一定要相同,str3的字符数组长度也要大于要复制字符数组的长度,如果长度不相同会出现报错的情况

strncpy

#include<stdio.h>
#include<string.h>
int main()
{char str1[] = "Remember ONE";char str2[30];strncpy(str2, str1,8);str2[8] = '\0';//追加一个结束符printf("str2=%s\n", str2);return 0;
}//str2=Remember

strcat

#include<stdio.h>
#include<string.h>
int main()
{char str1[15] = "Hello ";//这里要设置长度,vs2019会溢出char str2[] = "World!";strcat(str1, str2);printf("str1:%s\n", str1);return 0;
}
//str1:Hello World!

strncat

#include<stdio.h>
#include<string.h>
int main()
{char str1[15] = "Hello ";//这里要设置长度,vs2019会溢出char str2[] = "World!";strncat(str1,str2,5);printf("str1:%s\n", str1);return 0;
}
//str1:Hello World

strcmp

#include<stdio.h>
#include<string.h>
int main()
{char str1[] = "Fly";char str2[] = "Fly";if (!strcmp(str1, str2))//strcmp(str1, str2) 返回为0 取反为1{printf("两个字符串完全一致\n");}else{printf("两个字符串存在差异\n");}return 0;
}
//两个字符串完全一致

strncmp

#include<stdio.h>
#include<string.h>
int main()
{char str1[] = "Fly";char str2[] = "Fly!";if (!strncmp(str1, str2,4))//strcmp(str1, str2) 返回为0 取反为1{printf("两个字符串完全一致\n");}else{printf("两个字符串存在差异\n");//加了!}return 0;
}
//两个字符串存在差异

16.二维数组




#include<stdio.h>
int main()
{int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 };//3行4列for (int i = 0; i < 3; i++){for (int j = 0; j < 4; j++){printf("%d ", a[i][j]);}printf("\n");}return 0;
}
//1 2 3 4
//5 6 7 8
//9 10 11 12
#include<stdio.h>
int main()
{int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};//3行4列for (int i = 0; i < 3; i++){for (int j = 0; j < 4; j++){printf("%d ", a[i][j]);}printf("\n");}return 0;
}
//1 2 3 4
//5 6 7 8
//9 10 11 12

#include<stdio.h>
int main()
{int a[3][4] = {{1},{5},{9}};//3行4列for (int i = 0; i < 3; i++){for (int j = 0; j < 4; j++){printf("%d ", a[i][j]);}printf("\n");}return 0;
}
//1 0 0 0
//5 0 0 0
//9 0 0 0
#include<stdio.h>
int main()
{int a[3][4] = {0};//3行4列for (int i = 0; i < 3; i++){for (int j = 0; j < 4; j++){printf("%d ", a[i][j]);}printf("\n");}return 0;
}
//0 0 0 0
//0 0 0 0
//0 0 0 0
#include<stdio.h>
int main()
{int a[3][4] = { [0] [0] = 1,[1][1] = 2,[2][2] = 3};//3行4列for (int i = 0; i < 3; i++){for (int j = 0; j < 4; j++){printf("%d ", a[i][j]);}printf("\n");}return 0;
}
//1 0 0 0
//0 2 0 0
//0 0 3 0

#include<stdio.h>
int main()
{int a[][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12} };//3行4列for (int i = 0; i < 3; i++){for (int j = 0; j < 4; j++){printf("%d ", a[i][j]);}printf("\n");}return 0;
}
//1 2 3 4
//5 6 7 8
//9 10 11 12

17.指针




#include<stdio.h>
int main()
{char a = 'F';int f = 123;char *pa = &a;int *pb = &f;printf("a=%c\n", *pa);printf("f=%d\n", *pb);*pa = 'C';*pb += 1;printf("now a=%c\n", *pa);printf("now f=%d\n", *pb);printf("sizeof pa=%d\n", sizeof(*pa));//*pa获取的是a的大小  a是char类型当然是1个字节printf("sizeof pb=%d\n", sizeof(*pb));//*pb获取的是f的大小  f是int类型当然是4个字节printf("sizeof pa=%d\n", sizeof(pa));//4个字节存放一个地址printf("sizeof pb=%d\n", sizeof(pb));//4个字节存放一个地址printf("the addr of a is:%p\n",pa);//%p打印地址类型的数据printf("the addr of a is:%p\n", pb);//%p打印地址类型的数据return 0;
}
//a = F
//f = 123
//now a = C
//now f = 124
//sizeof pa = 1
//sizeof pb = 4
//sizeof pa = 4
//sizeof pb = 4
//the addr of a is : 00BBF6EF
//the addr of a is : 00BBF6E0

C语言 汇总笔记(小甲鱼:带你学C带你飞)相关推荐

  1. C语言学习笔记《带你学C带你飞》P21-P40

    文章目录 21.指针 22.指针和数组 23.指针数组和数组指针 24.指针和二维数组 25.void指针和NULL指针 26.指向指针的指针 27.常量和指针 28.函数 29.参数和指针 30.指 ...

  2. 小甲鱼老师《带你学C带你飞》的后续课程补充

    小甲鱼老师的<带你学C带你飞>系列之前有预告,说有机器人电子制作的续集,但是这么久了还是没有等到,博主在这里根据自己的学习经历,推荐一些学习的资料,可以为小甲鱼老师填一下坑,读者可根据自己 ...

  3. C语言学习(小甲鱼)

    C语言学习(小甲鱼) 第二章:数据类型,运算符和表达式 2.1:数据类型,运算符和表达式1 2.2:数据类型,运算符和表达式2 2.3:数据类型,运算符和表达式3 2.4: 数据类型,运算符和表达式4 ...

  4. 小甲鱼python课后题答案_小甲鱼python视频教程下载|小甲鱼零基础学python视频教程附习题答案_ - 极光下载站...

    小甲鱼零基础学python视频教程下载,最完整的小甲鱼python语言学习视频来啦,想要学习python语言的小白们不妨点击观看视频在下学习吧! Python语言介绍 Python是一种面向对象的解释 ...

  5. 【零基础】带你学C带你飞

    基本特性 1. 高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元. 2. 结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立 ...

  6. 学习笔记-小甲鱼Python3学习第三十一讲:永久存储:腌制一缸美味的泡菜

    pickle函数 打开--读/写--关闭 看个例子: >>> import pickle#导入pickle()函数 >>> my_list = [123,23.23 ...

  7. 跟着小甲鱼零基础学C

    先学一遍<小甲鱼的C语言教程>.25小时.基础,详细. 高数跟着宋浩老师,也是很基础. 有些东西捡起来不容易,但是不能因为不容易我们就不做.

  8. 小甲鱼零基础学python pdf_鱼C论坛小甲鱼《零基础入门学习python》课程课后题.pdf...

    第 1 课 0. Python 是什么类型的语言? Python 是脚本语言 脚本语言 (Scripting language) 是电脑编程语言,因此也能让开发者藉以编写出 让电脑听命行事的程序. 以 ...

  9. 带你学C带你飞 | printf函数 | 变量 | 常量和宏定义 | 数据类型 | 取值范围 | 字符串 | 运算符

    文章目录 一.printf函数 1.printf函数 2.printf函数课后作业 二.变量 1.变量 2.变量课后作业 三.常量和宏定义 1.常量和宏定义 2.常量和宏定义的课后作业 四.数据类型 ...

  10. 【带你学c带你飞】第2天课后练习

    @toc 上课demo练习 课后练习 你需要为程序中的变量.类型.函数和标签起一个名字,我们把这个名字称之为? 宏变量 main 是一个合法的标识符吗? 是的 字符串是常量吗? 不是 在 C 语言中, ...

最新文章

  1. Yii2 获取URL的一些方法
  2. Bit-Z开放零门槛做市商计划 最高返100%交易手续费
  3. 插入排序 希尔排序 C++
  4. (转)公钥,私钥和数字签名这样最好理解
  5. android 判断字符相等,字符串的截取,判断字符串是否相等和字符串是否为空的方法总结Java,Android...
  6. 比Excel还简单,跳槽数据分析岗必会的工具
  7. 标准评分卡分数计算原理_学习评分卡Gini指标?这篇看完就够了!
  8. java 我的世界 反编译_基于mcp940反编译Minecraft源代码
  9. 如何生成serialVersionUID
  10. require.js加载highcharts.js/exporting.js实现图表的绘制和图片文件功能的导出
  11. screw 的postgresql数据库使用教程
  12. vue中使用市区(地区)联动 复制三步完成
  13. 数字键盘(触屏键盘)
  14. 【钉钉-场景化能力包】会展入场
  15. echarts贵州地图展示自定义贵安新区
  16. Application Server
  17. 访问项目无法访问 此网站192.168.*** 拒绝了我们的连接请求。
  18. android 放大镜 Magnifier 简单实现
  19. 微信8.0苹果怎么更新
  20. 人形机器人——打篮球

热门文章

  1. 教科书级——黑盒测试设计用例的方法的介绍
  2. 正则判断手机号地区_匹配中国大陆所有手机号正则表达式
  3. windows下安装redis详细教程
  4. PCM音频数据格式介绍
  5. 大厂HR的新对手是Excel
  6. 使用git小乌龟拉取,更新,上传资料文档
  7. 史密斯圆图串并联口诀_史密斯圆图基本原理及应用.ppt
  8. 2021年双非院校保研浙江大学软件学院末位上车经验记录
  9. OTDR光时域反射仪测试参数设置
  10. STM32LCD显示汉字