|
常见关键字
自动的意思,一般在局部变量的前面,但因为局部变量都是自动变量所以省略了
int main()
{
auto int a=10; //是局部变量=自动变量
return 0;
}
结束,指跳出、结束循环
字符类型
常变量
继续
默认
循环
枚举常量
声明引用外部符号
单精度浮点数
循环
程序跳转
条件语句
整型
长整型
寄存器关键字
引出:计算机存储数据是分为:硬盘(500G),内存(8G/4G/16G),高速缓存,寄存器
又CPU(中央处理器)需要从内存中拿出数据
register int a=10;
所以这个关键字就是建议把它标记的数据发到寄存器里,然后编译器会自己判断要不要放在寄存器里
返回
短整型
有符号的,所以int=signed
引出:无符号整型为unsigned int num=0;一定为正整数了
计算大小
用来修饰局部变量时,局部变量的生命周期会变长,修饰全局变量时,全局变量的作用域只能在自己所在的原文件内部使用,以及修饰函数会改变函数的链接属性
修饰局部变量时:
void test() //void指无,即无返回值
{
static int a=1; //a是一个静态等等局部变量,即只被赋值一次
a++;
printf("a=%d\n",a);
}
int main()
{
int i=0;
while(i<5);
{
test();
i++;
}
return 0;
}
不加static时最后结果为五个2
加了就是2 3 4 5 6
修饰全局变量时:
第一个文件
static int g_val=2020; //定义一个被修饰的全局变量
第二个文件
int main()
{
extern int g_val; //extern声明外部符号的
printf("g_val=%d\n",g_val);
return 0;
}
这时会报错g_val没有赋值
修饰函数时
第一个文件
static int Add(int x,int y)
{
int z=x+y;
return z;
}
第二个文件
extern int Add(int,int); //声明外部函数
int main()
{
int a=10,b=20;
int sum=Add(a,b);
printf("sum=%d\n",sum);
return 0;
}
这时会报错没有Add的函数定义
结构体关键字
类型定义、类型重定义
int main()
{
typedef unsigned int u_int; //把这个类型重新定义为u_int
unsigned int num1=20; //和下面一行作用相同
u_int num2=20; //所以num为无符号整型
return 0;
}
联合体、共用体
无、空
注意:自己定义的符号不能与关键字相同,会冲突
Fn+F11是监控时用于进入此行函数运行
Ctrl+鼠标滚轮是放大缩小
#define定义常量和宏
定义标识符常量时
#define MAX 100 //定义MAX,这样下面都可以用了
int main()
{
int a=MAX; //直接引用a=100
return 0;
}
定义宏时(宏指在标识符常量的基础上带参数)
普通方式:
Max(int x,int y)
{
if(x>y)
return x;
else
return y;
}
宏方式:
#define MAX(X,Y) (X>Y?X:Y)
公式:
int main()
{
int a=10,b20;
int z=MAX(X,Y);
printf("max=%d\n",z);
return 0;
}
指针
内存
是电脑上特别重要的存储器,计算机中所以程序的运行都是在内存中进行的。
所以为了有效地使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节(32位最高4G)。
为了能够有效地访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。
int main()
{
int a=10; //申请4个字节
printf("%p\n",&a); //&a指取a的地址,对应的%p
return 0;
}
结果会显示一个16进制的地址号码
int main()
{
int a=10; //申请4个字节
int* p=&a; //现在变量p存放了a的地址,即指针变量,int*是指针变量p的类型
printf("%p\n",&a); //&a指取a的地址,对应的%p
printf("%p\n",p); //最后两者输出的地址相同
*p=20; //*是解引用操作符,该行指通过*p找到的a进行=20的操作
printf("a=%d\n",a); //结果为20
return 0;
}
注意这里的p是它的内容改为了a的地址,*p=20指将a的内容改为了20
又如:
int main()
{
char ch=’w’;
char* pc=&ch;
*pc=’a’;
printf("%c\n",ch); //结果为a
}
注意:32个bit位相当于4个字节,所以在32(64)位一个地址为4(8)个字节
将编译器从32位改为64位方法步骤
点击编译器第二行工具栏中的Debug里的配置管理器——活动解决方案平台中选新建——选择x64平台——确定
int main()
{
printf("%d\n",sizeof(char*)); //结果为4
printf("%d\n",sizeof(int*)); //结果为4
,,,,,,
return 0;
}
|
免责声明:
1. 本站所有资源来自网络搜集或用户上传,仅作为参考不担保其准确性!
2. 本站内容仅供学习和交流使用,版权归原作者所有!© 查看更多
3. 如有内容侵害到您,请联系我们尽快删除,邮箱:kf@codeae.com
|