代码拉取完成,页面将自动刷新
同步操作将从 狐皮先生/c语言文档 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
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.二分查找
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。