C语言学习记录2022.5.15

C语言学习记录2022.5.15,第1张

1、static修饰局部变量时,局部变量的生命周期变长:

void test()
{
    static int a = 1;
    a++;
    printf("%d\n", a);
}

int main()
{
    int i = 0;
    while(i < 5)
    {
        test();
        i++;
    }
    return 0;
}                     //在此例中,打印的应该是2,3,4,5,6;相当于a在test()函数                
                      //中只被赋值了一次并且值被保留了下来

static修饰全局变量时会使其作用域变小,使变量只能在所定义的原文件中使用,extern关键字此时是失效的。

2、而static关键字修饰函数时如同修饰全局变量一样,会改变函数的链接属性,即外链变成内链,不能被extern作用。

3、typedef用来定义已经存在类型的别名,如:

typedef unsigned int uint;
此后语句uint var = 2 等价于unsigned int var = 2.

4、指针用来存放变量地址,目前还不知道有什么具体应用,到后面应该会慢慢了解。指针的类型应该与定义变量的类型一致。指针目前所了解使用方法如下:

int main()
{
    char var = 1;
    char* p = &var;
    *p = 20;
    printf("%d\n", var);
    return 0; 
}                      //要注意的是定义指针p时,char* p和char *p两种写法都是可以的
                       //但是为了避免引起混淆,平时定义指针时就写成char* p。
                       //在此例中,p的值为变量var的地址,“ * ”称为解引用符,用来取p
                       //的值即变量var的地址所指的内容,括号中第三行已经使用解引用符
                       //将p所指的内容即var的值改成了20,所以打印出的var的值是20而
                       //不是1

5、指针大小在32位 *** 作系统中是4字节,在64位 *** 作系统中是8字节。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/926618.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存