1 Star 0 Fork 1

一一哥/c语言文档

forked from 狐皮先生/c语言文档 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
初识c语言.txt 6.49 KB
一键复制 编辑 原始数据 按行查看 历史
狐皮先生 提交于 2023-01-13 12:48 +08:00 . 1.13 文档
1.关于数组 有两种初始化方法 int a[3]={1,2,3}; or int a[]={1,2,3};
2.C99 标准语法之前 不支持 数组的大小不能使用变量定义元素个数
C99标准语言时 支持数组所以变量定义数组元素 但是数组不能初始化。
3.#define 预处理指令
4.ctrl+z 回车 使 scanf();停下,不输入;
5.自定义类型: 结构体 枚举 联合体
分支语句和循环语句
6.分支 if swich 循环 while for do-while
7.什么是语句
7.1 语句分为5类 :表达式语句 函数调用语句 控制语句 复合语句 空语句
7.2 控制语句:用于控制程序的执行流程,实现各种程序结构方式(顺序结构,选择结构,循环结构),控制语句有9种分类
ps:C语言是一门结构化的循环程序设计语句
7.3 控制语句 9种分别是 分支 if swich
循环 while for do-while
转向语句:break goto continue return
7.3.1分支语句 单分支: if(表达式)
双分支: if(表达式) else ;
多分枝: if(表达式) else if(表达式) else
ps :0表示假 非0都表示真
7.3.2 if中else和上面第一个if匹配;
7.3.3 . if()语句使比较一个变量和一个常量比较时 建议(1==n)不建议(n==1) 因为if(n=1)不会报错 if(1=n)会报错,提高代码素养
7.4switch(表达式(必须是整型)) case 选择项(必须是整型常量)(语句决定入口不遇见break不退出)break; 选择项中没有成立条件时 所以 default
7.4.1 switch (input) -->打印了hehe 和haha 因为没有遇到break 会一直执行其他的case 直到遇见break或则switch程序结束
{
case 1:
printf("hehe\n");
case 2:
printf("haha\n");
default:
break;
}
因为case只是入口 ,没有遇见break会一直执行
当switch嵌套switch时 break时它只会跳出所在的switch中 不会连续跳出多层,只跳一层
2023/1/7
1. int a;
a有4个字节空间,分别是 :0x0113fdc801 0x0113fdc802 0x0113fdc803 0x0113fdc804
&a取a的第一个地址空间 :0x0113fdc801
PS:11的二进制 1011 八进制13 十六进制 b 都是数字表示形式
2. 如将数字1存储在内存的过程 int a=1;-->int *p(*表明p是指针变量)=&a;-->p内存着a的地址(如果被指的变量占多个字节,就取他的第一个字节的地址) p叫做指针变量
3. 地址也叫做指针 int *p=NULL; p叫做指针变量(地址变量)存储地址 当想通过地址找到a,可以通过*p找到a的值:
如int a=10; int*p=&a(取a地址,地址保存在p中);*p=20;(将20存在 p的地址中 *p为解引用 打开地址的空间 改变其地址所保存的值值)
4.一个指针变量大小是多少?
变量大小取决于存放多大字节的空间
而指针变量存放的是地址。
而地址
在32位机器上 是32位bit位
在32位机器上 一个指针变量存放的是32位bit的地址
所以在32位的机器上 指针变量的大小都是一样的 4个tybe
在64位机器上 是64个bbit位
在64位机器上 一个指针变量存放的是64位bit的地址
所以在64位的机器上 指针变量的大小都是一样的 8个tybe
x86是32位环境
x
5.%llu==%zd 打印无符号长整型 unsigned long long
1.关于数组 有两种初始化方法 int a[3]={1,2,3}; or int a[]={1,2,3};
2.C99 标准语法之前 不支持 数组的大小不能使用变量定义元素个数
C99标准语言时 支持数组所以变量定义数组元素 但是数组不能初始化。
3.#define 预处理指令
4.ctrl+z 回车 使 scanf();停下,不输入;
5.自定义类型: 结构体 枚举 联合体
分支语句和循环语句
6.分支 if swich 循环 while for do-while
7.什么是语句
7.1 语句分为5类 :表达式语句 函数调用语句 控制语句 复合语句 空语句
7.2 控制语句:用于控制程序的执行流程,实现各种程序结构方式(顺序结构,选择结构,循环结构),控制语句有9种分类
ps:C语言是一门结构化的循环程序设计语句
7.3 控制语句 9种分别是 分支 if swich
循环 while for do-while
转向语句:break goto continue return
7.3.1分支语句 单分支: if(表达式)
双分支: if(表达式) else ;
多分枝: if(表达式) else if(表达式) else
ps :0表示假 非0都表示真
7.3.2 if中else和上面第一个if匹配;
7.3.3 . if()语句使比较一个变量和一个常量比较时 建议(1==n)不建议(n==1) 因为if(n=1)不会报错 if(1=n)会报错,提高代码素养
7.4switch(表达式(必须是整型)) case 选择项(必须是整型常量)(语句决定入口不遇见break不退出)break; 选择项中没有成立条件时 所以 default
7.4.1 switch (input) -->打印了hehe 和haha 因为没有遇到break 会一直执行其他的case 直到遇见break或则switch程序结束
{
case 1:
printf("hehe\n");
case 2:
printf("haha\n");
default:
break;
}
因为case只是入口 ,没有遇见break会一直执行
当switch嵌套switch时 break时它只会跳出所在的switch中 不会连续跳出多层,只跳一层
int arrayTmp[10] = {0};
int nTmp = &arrayTmp[4]-&arrayTmp[0];
问 nTmp = ?
当时想也没想写了nTmp = 16;
回家在机器上调试运行了一下,结果nTmp=4。
原来,执行完数组地址相减运算后,还会执行算数右移指令,右移位数视参数类型而定,如:int型右移2位,short型右移1位。 都知道右移1位相当于除以2操作,右移2位等同于除以4。
由此可见,两个数组元素地址相减,实际是获取两个元素数组元素的距离,而不是地址的距离。
int main()
{
char a[14];
//这是错误的初始化方式 因为字符串是个常量不可被修改
a = "Hello, world!";
//应该char a[14]="Hello, world!";-->这属于指向一个一个的字符,
//a的左值不可修改
return 0;
}
3. i++和i--在表达式中会永久改变值
1.do--->while
2.int n=10; int b[n]; b 是变长数组 b不可初始化赋值;
3.二分查找
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/sunyiyi/c-language-document.git
git@gitee.com:sunyiyi/c-language-document.git
sunyiyi
c-language-document
c语言文档
master

搜索帮助