c语言 初始化字符串,c语言初始化字符串

kodinid 5 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言 初始化字符串问题,于是小编就整理了4个相关介绍c语言 初始化字符串的解答,让我们一起看看吧。

  1. C语言如何给字符数组初始化?
  2. c语言数组初始化的条件?
  3. c语言字符串表示方法?
  4. c语言中,怎么样定义一个字符串变量?

C语言如何给字符数组初始化?

1、直接逐个初始化字符数组:

字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素

c语言 初始化字符串,c语言初始化字符串-第1张图片-安济编程网
图片来源网络,侵删)

char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};

注意:如果括号提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即'\0'

)。

c语言 初始化字符串,c语言初始化字符串-第2张图片-安济编程网
(图片来源网络,侵删)

2、用字符串常量来初始化字符数组:

在c语言中,将字符串作为字符数组来处理。因此可以使用字符串来初始化字符数组。

char str[]={"I am happy"};

c语言 初始化字符串,c语言初始化字符串-第3张图片-安济编程网
(图片来源网络,侵删)

也可以省略花括号。

char str[]="I am h***y";

c语言数组初始化的条件

C语言允许用字符串的方式对数组作初始化赋值。例如:

static char c[]={'c',' ','p','r','o','g','r','a','m'}; 可写为:

static char c[]={"C program"}; 或去掉{}写为:

static char c[]="C program";

当对全体元素赋初值时也可以省去长度说明。例如:static char c[]={`c`,` `,`p`,`r`,`o`,`g`,`r`,`a`,`m`};这时C数组的长度自动定为9。

c语言字符串表示方法

1. C语言中字符串的表示方式有两种:字符指针和字符数组

2. 字符指针表示字符串

编译器角度分析

例如:char *p = "linux" ; p是字符指针,"linux" 字符串本身,当编译器遇到这种字符串表示时,会将指针和字符串本身分开处理, 字符指针p是一个变量,将其放在栈上,而字符串本身 "linux" 则被存放在代码段,其首地址赋给p。

内存角度分析:

c语言中,怎么定义一个字符串变量?

C语言没有字符串类型,所以没办法进行定义字符串变量。

但是可以用字符数组来处理字符串。(这定义了一个字符数组,名为a)

例:char a[] = "hello";

也可以用来定义一个指针变量(定义了一个指针变量,名为p)。

例:char *p = "hello";

C语言中没有专门的字符串变量,如果要将一个字符串存放在变量中,必须使用字符数组,即用一个字符型数组来存放一个字符串,数组中每一个元素存放一个字符。

定义: char c[10]

字符型与整型互相通用,因此 int c[10] 也可以定义字符数组。但由于两种类型分配字节不同, 用整型来定义会浪费空间, 另外这样定义实际意义也不大, 只是为了说明其合法性。

简单的方法即逐个赋值: char c[10]={'I', ' ', 'a', 'm', ' ', 'h', 'a', 'p', 'p', 'y'}; 10个字符分别赋绐c[0]到c[9]10个元素。

到此,以上就是小编对于c语言 初始化字符串的问题就介绍到这了,希望介绍关于c语言 初始化字符串的4点解答对大家有用。

标签: 数组 字符串 字符