栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > C/C++/C#

学习c的第二天(指针,关键字)

C/C++/C# 更新时间:发布时间: 百科书网 趣学号

#define _CRT_SECURE_NO_WARNINGS 
#include
#include
指针,是一个变量,是用来存储地址的。未来我们可以通过这个指针找到这个地址所存储的值,并对其引用或者修改
int main() {
    int x = 10;//创建一个变量,将变量赋值成10,并将其放入向内存申请的一个空间中。
    int* p = &x;//创建一个int*类型的变量p,并将x的地址记录在变量p向内存申请的一个空间中。
    *p = 20;//将20这个值赋给p所储存地址所对应的变量,即x。 //p-指针名称,*p-指针类型 
    printf("%dn", x);
    printf("%dn", sizeof(p));
    return 0;
}
int*为变量p的类型,p称为指针变量
* ->为解引用操作符
指针的大小在32位平台上是4个字节,在64位平台上是8个字节。

可用#define用来定义标识符常量 
eg:#define MAX 10
#define 还可用来定义函数
#define MAX(X,Y){X>Y?X:Y}//与函数表达形式等价
int max(int x, int y) {
    
    if (x > y)
        return x;
    else
        return y;
}
int main() {
    int a = 10;
    int b = 20;
    int sum1 = 0;
    int sum2 = 0;
    sum1= max(a, b);
    sum2 = MAX(a, b);
    printf("%dn", sum1);
    printf("%dn", sum2);
    return 0;
}

extern int add(int, int);
int main() {
    int x = 10;
    int y = 20;
    int sum = 0;
    sum = add(x, y);
    printf("%dn", sum);
    return 0;
}
关键字:
typedef-类型定义-类型重定义
unsigned-无符号-即数无正负之分
static 1、修饰局部变量,使局部变量生命周期延长
       2、修饰全局变量时,改变变量作用域,使静态的全局变量只能在自己所在的源文件内使用。
       3、修饰函数时,改变了函数的链接属性,使得动态的链接不能被其他系统识别到。
          即,使外部链接属性变成了内部链接属性
static int a;//加了static后a变成了一个静态的局部变量,函数调用完后,a不会被销毁。
extern->用于声明外部符号,函数等
int Add(int a, int b) {
    int z = 0;
    z = a + b;
    return z;
}
int main() {
    int x = 10;
    int y = 20;
    int sum = 0;
    sum =Add( x,y);//()->为函数调用操作符
    printf("%d", sum);
    return 0;
}

int main() {
    int x = 10;
    int y = 20;
    int max = 0;
    
    max = (x > y ?  x :  y);//此行代码完美替代了上面四行代码,实现了写代码的简便性。
    printf("%dn", max);
    return 0;
}

int main() {
    int x = (int)3.14;//(类型)—>强制类型转换   一般不建议使用
    return 0;
}

int main() {
    int a = 10;
    int b = a++;//后置++,先将a赋给b,再将a+1
    //int c = ++a;//前置++,先将a+1,再将值赋给b
    printf("%dn%dn",a, b);

    return 0;
}

EOF->end of file ->文件结束标志  值:-1
int main() {
    int x = 0;
    //~:按位取反—>二进制位0变1,1变0
    int y = ~x;
    printf("%d", y);//结果为-1
    //分析:引入概念:原码,反码,补码。
    //负数在存储的过程中存的是二进制的补码。
    //printf打印出来的是二进制的原码。
    //int->4个字节—>32个bit位。
    //0转换为二进制并取反后得
    //11111111111111111111111111111111—>首位为符号位,符号位不变。1代表负号,0代表正号
    //由于开头为1,因此判定为补码,对其进行转换成原码
    //转换步骤为:-1再取反,首位不变,结果为:10000000000000000000000000000001转化为十进制为-1
    return 0;
}
c语言规定,凡是整数,内存中存储的都是二进制的反码
正数——原码,反码,补码  三码相同
原码:直接按照正负写出二进制序列
原码—>反码:原码符号位不变,其他位按位取反得到
反码—>补码:反码+1

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/1033279.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号