c语言基本学习
一、c的数据类型
c语言类型:1. 基本类型:整型:short
int
long
longlong
字符型 :char
浮点型: float double
2.构造类型:数组,结构体struct,联合体union,枚举enum
3.指针:32位机:4个字节,64位机:8个字节
4.定义类型(自定义):typedef 例typedef uint16 NvM_u16 ; typedef uint8 NvM_u8 ;
typedef struct {
NvM_u16 id;
NvM_u8 dataPtr;
}NvM_data;
2.内存尺寸
sizeof:如 sizeof(int),sizeof(var_name),sizeof(a+b) 或 sizeof var_name 。
注:联合类型操作数的 sizeof 是其最大字节成员的字节数。结构类型操作数的 sizeof 是其对象包括任何填充在内的总字节数。
数组的长度 = 数组所占的大小/单个数组元素所占的大小,如:int arr[]={0,1,2};int leng=sizeof(arr)/sizeof(arr[1]);
动态分配内存:在不确定特定机器中的sizeof(int),分配足以容纳10个整数的内存。 int p = malloc(10sizeof(int));
3. 强制类型转换(把变量从一种类型转换为另一种数据类型)
例:将float强制转换为整型
float a=13;
float b=2;
int c;
c = (int)(a/b);
4.运算符
算术运算符:+ (加) , - (减) ,* (乘) ,/ (除) ,%(取余,模运算) ,++ (自增) ,–(自减)
关系运算符:>(大于) ,<(小于) ,==(等于) ,!=(不等于) ,>=(大于等于) ,<=(小于等于)
逻辑运算:&& (与) ,|| (或) ,! (非)
赋值运算符:
= (赋值)+= ,-= ,*=, /= ,%= (算术复合赋值运算符)&=, |=,^=,~,>>,<<(位运算复合赋值运算符)
位运算符:&,|,^,~,>>,<<
条件运算符:?:(条件运算符,三目运算符,三元运算符)
逗号运算符:,(逗号运算符)
指针运算符:&(取地址符) *(寻址符)
求字节运算符:sizeof(获取字节数)
特殊运算符:()(括号运算符,更改表达式运算顺序),[ ](数组下指针访问成员运算符),·(结构体变量访问成员运算符)
5.控制流
if语句、if-else语句。 for语句。 while语句、do-while语句。
continue、break、goto语句。注:continue:结束本次循环,直接进入下一次循环。break:直接跳出循环体,执行下面的语句。
6.一些学习内容总结
(1)局部变量必须进行初始化;
(2)char *str=“hello”;str[0]=‘w’可以改变值?
不能修改,str指向了字符串常量,str指向的地址是常量区,不能被修改。
char str[]=“hello”;
此时str为变量,可以修改。
(3)八进制 081是否正确?不正确,八进制(0—7),8为溢出;
(4)float和double的有效位数的区别
float:7位有效数字,4个字节;
double:15——16位 有效数字,8个字节。
(5)转义字符
\0 空字符,占一个字节 字符串尾部会有\0,代表字符串结束;
\t 置表位;
\n 换行;
(6)%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%lu 32位无符号整数
%llu 64位无符号整数
%.2f是float后的小数只输出两位
c语言基本学习
于 2024-08-30 11:05:38 首次发布