提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、指针
对于计算机来说,他的所有数据都必须放在内存中,不同类型的它所占用的字节不同例如,int占用4个字节。我们为了正确的访问这些数据,我们给每个字节进行编号,我们将这个编号称为指针。最小的存储地址为0x0000 0000,最大的地址为0xFFFF FFFF。
#include<stdio.h>
int main()
{
int a=10;
&a;//取a变量的地址;
printf("1==>0X%08X\n",&a);
}
在32位系统中,指针占四个字节,在64位的环境中是8个字节。
小端存放:低字节存放在低地址,高字节存放在高地址;大端存放则相反。
#include<stdio.h>
int main()
{
int *p;//对指针的声明
int a=100;
p=&a;
*p=100;//获取指针指向的数据,是一种间接操作
return 0;
}
二、结构体
:在C语言中,结构体是一种数据类型:例如
struct Student
{
char s_id[10];
char s_name[10];
char s_sex[5];
int age;
};
int main()
{
int a;
struct Student s1 ={"","",""};//声明结构体变量
printf("%s\n",s1.s_id);
return 0;
}
二、typedef
typedef这个关键字是将变量名转化为类型名,例如
typedef struct student
{
}s,*stu;//其中student是结构体的名称,s是变量类型,*stu是指针类型
三、static和extern,const
static:修饰局部变量,语法层面:函数被调用时,静态变量只被初始化一次。被存在数据区(可见性只能在本文件可见)
#include<stdio.h>
int main()
{
static int a=0;//静态局部变量
return 0;
}
extern:告诉编译器,这个变量在这个工程的其他文件有这个;在链接的时候定位(外部关键字)
const :定义常变量的关键字,可读不可写,const可以和int互换位置,必须进行初始化,赋予初值。例如
int const a=10;
四,函数
函数:系统预定义(库函数);用户自己定义的(函数 返回类型+函数名+形参列表+函数体,无论花括号里有没有东西,都是函数的定义,没有花括号就是函数的声明),每个形参前面都要有类型,不等于局部变量的定义,定义函数名的时候要见名知意
五,空语句
语句可以为空,例如int main()
{
for (; ;);
{
printf("sahidhi");
}
}
空语句带来的问题:它会破坏if,while,for语句,导致语句提前结束,
if会导致不论条件符合与否嘛,都执行下一个语句;
while:会导致无限循环,会执行一次例如
int main()
{
int i = 0;
while (--i > 0);
{
printf("0");
}
return 0;
}
五,bool
在.c文件中需要引用头文件<stdbool.h>,空字符,0,空指针都是假,其余的都为真,运用逻辑表达式,运算结果都是bool值。例如:与运算(&&);或运算(||);非运算(!);
他们的优先级为:赋值运算符(=)<&&和||<关系运算符<算术运算符<非(!).