赞
踩
数据类型 | 中文解释 | 大小(字节)(一个字节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;
}
开始 选择 处理 结束 循环
一组相同类型的元素组合
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 = 10;
int *p;//p为整型变量指针。*为间接访问操作符(单目操作符)
p = #//&取地址操作符(单目操作符)
使用指针:
#include <stdio.h>
int main()
{
int num = 10;//为常量10申请地址
int *p = #//*为间接访问操作符。为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;
}
#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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。