c语言小结

数据类型

数据类型中文解释大小(字节)(一个字节8个比特位)
char字符数据类型1
short短整型2
int整型4
long长整型4或8
longlong更长整型8
float单精度浮点数8
double双精度浮点数8

sizeof(数据类型)查看数据类型大小。

#include <stdio.h>
int main()
{
    printf("%d\n", sizeof(char));
    printf("%d\n", sizeof(short));
    printf("%d\n", sizeof(int));
    printf("%d\n", sizeof(long));
    printf("%d\n", sizeof(long long));
    printf("%d\n", sizeof(float));
    printf("%d\n", sizeof(double));
    printf("%d\n", sizeof(long double));
    return 0;
}

变量 常量

一般地,定义声明一个值所具备的属性可以归纳为变量还是常量。常量定义完不可修改,变量相反。

属性位置作用域生命周期定义方法
局部变量函数体内所在的局部范围一般是函数体内进作用域开始,出作用域结束常规定义
全局变量主函数外整个工程范围整个程序的生命周期常规定义
字面常量任意根据是局部还是全局根据是局部还是全局常规定义
修饰的常变量(带变量属性的常量,本质是变量)任意根据局部还是全局根据局部还是全局const [数据类型] [常量名称] = [常量值]
标识符常量同上同上同上define [标识符常量名称] [常量值]
枚举常量任意根据局部还是全局根据局部还是全局enum [常量名称] = {常量1,常量2,常量3,…}

同名时,局部变量优先

字符串 转义字符

由双引号阔起来的一串字符
字符串结束标志是\0的转义字符,转义字符部分不计入字符串内容

转义字符含义
\?防止解析为三字母词
\’防止’转义
\"防止”“转移
\\防止\转义
\a警告字符
\b退格符
\f进纸符
\n换行
\r回车
\t水平制表符
\v垂直制表符
\ddd或\\dd8或\\d8d一至三个八进制数字
\xdd两个十六进制数字
//程序输出什么?
#include <stdio.h>
int main()
{
    printf("%d\n", strlen("abcdef"));//输出6
    // \6被解析成一个转义字符,其中8不是八进制所以没解析
    printf("%d\n", strlen("c:\test\682\test.c"));//输出15
    printf("%d\n", strlen("c:\test\x3544444.c"));//输出9
    return 0;
}

选择if,循环while、for、do … while

开始 选择 处理 结束 循环

数组

一组相同类型的元素组合

int arr[10] = {32, 523, 24, 32, 43, 5, 4, 52, 25, 523}

数组0开始
数组下标

操作符

操作符表达
算数操作符+ - * / %
移位操作符>> <<
位操作符& ^ |
赋值操作符= += -= *= /= &= ^=
单目操作符! 逻辑反操作;- 负值;+ 正值;& 取地址;sizeof 操作数的类型长度(以字节为单位);~ 对一个数的二进制按位取反;-- 前置、后置–++ 前置、后置++;* 间接访问操作符(解引用操作符);(类型) 强制类型转换
关系操作符>;>=;<;<=;!= 用于测试“不相等”== 用于测试“相等”
逻辑操作符&& 逻辑与;|| 逻辑或
条件操作符exp1 ? exp2 : exp3
逗号表达式exp1, exp2, exp3, …expN
下标引用、函数调用和结构成员访问操作符[] () . ->

常见关键字

auto break case char const continue define do double else enum
extern float for goto if int long register return short signed
sizeof static struct switch typedef union unsigned void volatile while
下文仅对加粗进行了扩展

define 定义常量或宏
static 修饰局部变量,让局部变量直到程序结束生命周期才结束。修饰全局变量让其在其他源文件失效。修饰函数使得其只能在本源文件内使用。

指针

内存是存储器,为了更好使用内存将内存划分为小内存单元,每个内存单元的大小是一个字节。为了更好访问每个单元就给内存单元进行编号,即内存单元地址。

每个类型变量或常量都是存储在内存单元中
数据类型和内存单元
存储过程:

int num = 10int *p;//p为整型变量指针。*为间接访问操作符(单目操作符)
p = &num;//&取地址操作符(单目操作符)

使用指针:

#include <stdio.h>

int main()
{
	int num = 10;//为常量10申请地址
	int *p = &num;//*为间接访问操作符。为p申请地址,并将上行地址取出并赋值给申请的地址,相当于两个地址进行关联
	printf("%d\n", p);//地址14089504(每次结果不同),此时的地址是常量num的地址
	*p = 20;//将20赋值给p,p的地址依然是常量num的地址
	printf("%d\n", p);//14089504
	return 0;
}

指针变量的大小取决于地址的大小。32平台32bit,4个字节。64平台64bit,8个字节。
测试:

#include <stdio.h>
int main()
{
    printf("%d\n", sizeof(char *));//4或8(64位)
    printf("%d\n", sizeof(short *));//4或8(64位)
    printf("%d\n", sizeof(int *));//4或8(64位)
    printf("%d\n", sizeof(double *));//4或8(64位)
    return 0;
}

结构体 struct

#include <stdio.h>
int main()
{
struct Stu
{
char name[20];
int age;
char sex[5];
char id[15];
};
//结构体初始化
struct Stu s = {"zhangsan", 20, "male", "202222"};
printf("name = %s age = %d sex = %s id = %s\n", s.name, s.age, s.sex, s.id);//.为结构成员访问操作符
struct Stu *ps = &s;//*为间接访问操作符, &取地址。
printf("name = %s", ps->name);
return 0;
}
输出
//name = zhangsan age = 20 sex = male id = 202222
//name = zhangsan
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值