c语言基础知识包含,C相关基础知识记录
c语言基础知识包含,C相关基础知识记录结构体也是一种数据类型,它由程序员自己定义,可以包含多个其他类型的数据。像 int、float、char 等是由C语言本身提供的数据类型,称之为基本数据类型;而结构体可以包含多个基本类型的数据,也可以包含其他的结构体,称为复杂数据类型struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在学习小组 float score; //成绩 }; 注意大括号后面的分号;不能少,这是一条完整的语句。进制的打印:C语言中的二进制数、八进制数和十六进制数3.结构体相关知识①C语言中,结构体类型属于一种构造类型,结构体是一种集合,它里面包含了多个变量 或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)
1.位操作
- 取某一bit位的值:可以用&(按位与)操作
举例 取出x的第4位: char x = 10;//0000 1010
0000 1010
& 0000 1000
-------------
= 0000 1000
上面&(按位与)操作数0000 1000 相当于(1<<3)(1左移动三位)
- 置某一bit位为0:可以用&(按位与)操作
- 置某一bit位为1:可以用 | (按位或)操作
2.有符号数和无符号数
计算机中数都是补码表示
举例 : char x = 10;//0000 1010
int result3 = x | (~(1<<3));
unsigned char result4 = x | (~((unsigned char)1<<3));
--------------------------------------------------------------------------------------------------------
举例的第二行代码(int result3 = x | (~(1<<3)); )的计算示例:
0000 1010 数值:10
| 1111 0111 ~(1<<3)
-------------
= 1111 1111 有符号数result3的值是: -1 有符号值 1111 1111 是补码
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
举例的第三行代码(unsigned char result4 = x | (~((unsigned char)1<<3));)的计算示例:
0000 1010 数值:10
| 1111 0111 ~(1<<3)和写成(~((unsigned char)1<<3))一样
-------------
= 1111 1111 无符号数result3的值是: 255 有符号值 1111 1111 是补真值
-------------------------------------------------------------------------------------------------------
相关参考:为什么计算机中负数用补码表示_豆小匠Coding的博客-CSDN博客_负数为什么用补码表示
进制的打印:C语言中的二进制数、八进制数和十六进制数
3.结构体相关知识
①C语言中,结构体类型属于一种构造类型,结构体是一种集合,它里面包含了多个变量 或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)
struct stu{
char *name; //姓名
int num; //学号
int age; //年龄
char group; //所在学习小组
float score; //成绩
};
注意大括号后面的分号;不能少,这是一条完整的语句。
结构体也是一种数据类型,它由程序员自己定义,可以包含多个其他类型的数据。
像 int、float、char 等是由C语言本身提供的数据类型,称之为基本数据类型;而结构体可以包含多个基本类型的数据,也可以包含其他的结构体,称为复杂数据类型
结构体的其他基本知识可以参考如下链接:
C语言结构体详解,C语言struct用法详解
②结构体中非常重要的部分是内存对齐:
参考以下链接,写的非常详细
C语言中的结构体(struct)___Sunshine_的博客-CSDN博客_c语言结构体
③结构体之间的强制转换(将一种类型的结构体转换另外一种类型的结构体),本质是将被转换的结构体的内容(结构体所在地址的内存中的值)按转换后的结构体来解释。
结构体强制类型转换_踏实IT精英的博客-CSDN博客_结构体类型转换
c基础知识
4.函数指针
函数指针是指向函数的指针变量。声明形式:返回值类型 ( * 指针变量名) ([形参列表]);
参考:C/C 函数指针_阿飞__的博客-CSDN博客_c 函数指针变量