c语言课堂笔记(11.17)

sizeof 计算字节数
strlen计算字符串长度(不包含\0)
例:lello
sizeof计算得6(包含\0)
strlen计算得5
printf(“%%”)输出%
fflush清空输入缓冲区
scanf 只能决定宽度不能决定精度(%m)
scanf(“%*”)中% 为赋值抑制符(取完值不赋给任何变量)
int i:定义变量(分配空间,只能定义一次)
extern int i:声明变量(不分配空间,可以无数次声明但每次都要一样)
存储空间划分:程序区,静态存储区,动态存储区,堆区,栈区
c的存储类别:auto ,static,register,extern
register寄存器(1。只能整型 2。不能取地址 3。不能声明成静态)
全局变量+static :限制使用范围,只在当前程序下使用(多个项目中全局变量重名互不影响)
const (与const靠的近的就不可修改)
例:const int a(a不可修改但a可修改)
int * const a(a 不可修改但 a可修改)
int const * const a(a和 * a都不可修改)
volatile 限制优化(在硬件编程中使用):例如死循环等不需要优化的命令
struct { };结构体
;不能漏

字对齐(int 4字节)
半字对齐(short 2字节)
字对齐优先于半字对齐
减少内存空洞的方法:同类型定义的成员放一起
例;struct node
{
char ch; ->4字节
int num;->4
char ch1;->4
char ch2;->和ch1共用4字节
double c;->8
char ch3->4
short b;->和ch3共用4字节
}
char name[20]=“ 输入字符串”(初始化)
name[20]=“输入字符串”(不能这样进行赋值)
strcpy(name[20],“字符串”);(若未初始化则要这样进行赋值)
scanf(“%s”)不能输入带空格的字符串
gets()只认回车(可输入带空格的字符串)
->指向运算符优先级最高
struct *p: 【(*p).num p->num】
p->num++先取num的值再对其进行其他运算最后自加赋值
++p->num先取num的值对其进行++运算再其他运算然后赋值
union{};共用体(分配空间为定义字节数最大的那个)
大端字节序:系统将高位数据放在了低位系统内存中
小端字节序:系统将低位数据放在了低位系统内存中

猜你喜欢

转载自blog.csdn.net/qq_43603963/article/details/84190355