char s[]和char *s的区别

来源:互联网 发布:电气控制仿真软件exe 编辑:程序博客网 时间:2024/04/28 04:30

char s[]="hello world";

char *s=“hello world”;

char s[]的s是个字符数组,含12个字节(包含结尾\n),"hello world"对s来说是初始化,将字符一个一个的复制进s阵列

char *s的s是个指针,指向字符类型,由于“hello world”本身就是一个字符串常量,s指向这个字符串的起始位置。

程序验证:

#include <stdio.h>int main(){char s1[]="hello world";char *s2="hello world";printf("%d\n",sizeof(s1));printf("%d\n",sizeof(s2));return 0;}
执行结果:

12

4

s1是数组,所以占了12个字节

s2是指针,所以占了4个字节



0 0