##指针的int类型和char类型声明和输出比较

    科技2022-08-01  88

    指针的int类型和char类型声明和输出比较

    ​ 由于我们对计算机底层原理不熟悉的情况下,我相信每个人在初学指针的时候都会感到很抽象,无解。这里呢,我解释一下输出指针的int类型和char类型的区别。

    首先我们看int类型的声明以及输出

    #include<stdio.h> int main(){ int var=100; int *ptr=&var; printf("变量var的值:%d\n",var); printf("变量var的地址:%p\n",&var); printf("-----------------------------\n"); printf("指针变量ptr的值:%d\n",*ptr); printf("指针变量ptr的地址:%p\n",ptr); return 0; }

    输出内容:

    通过输出内容我们看到了:

    这里ptr是指针,ptr是指针指向地址的值*( * 代表 “取内容运算符” )。

    输出int类型的值我们就必须要在变量之前添加*,输出地址我们只需要变量名就可以了。

    好,这里我们讲声明char指针和输出char指针的区别

    众所周知,C语言是不像JAVA等面向对象语言有Stirng类型的,在面向对象中。Char一般指代的是一个字符,而String指代的是字符串。C语言里面char可以声明为一个字符串,其实底层其实是一个字符数组,数组的末尾索引存储的是 “\0”,所以每次输出的时候,遇到“\0”就代表输出结束。

    首先看一下char指针声明的代码

    #include<stdio.h> int main(){ char *String="Hello World"; printf("%s\n",String); return 0; } 输出: Hello World

    为什么输出char变量的时候没有在变量之前添加*修饰符呢,因为我们输出的时候是%s,这是输出字符串类型,我们要的就是一整个字符串,而不是要单个字符,如果是单个字符,我们应该使用的是%c,这样才是输出单个字母,并且这个char *string实际上就是一个字符数组char[],所以*String其实就是这个字符数组的首地址,当我们输出%s的时候,会读到\0才结束整个字符数组的输出,从而使我们看到的是一个字符串。

    的首地址,当我们输出%s的时候,会读到\0才结束整个字符数组的输出,从而使我们看到的是一个字符串。

    Processed: 0.011, SQL: 8