[转]char数组赋值 您所在的位置:网站首页 char赋值给char数组 [转]char数组赋值

[转]char数组赋值

2023-08-09 08:44| 来源: 网络整理| 查看: 265

 

c语言易错点

 

定义一个数组char a[10]; 怎么给这个数组赋值呢? 1、定义的时候直接用字符串赋值 char a[10]=“hello”;注意:不能先定义再给它赋值,如char a[10]; a[10]=“hello”;这样是错误的! 2、对数组中字符逐个赋值 char a[10]={‘h’,‘e’,‘l’,‘l’,‘o’}; 3、利用strcpy char a[10]; strcpy(a, “hello”); 易错情况:1、char a[10]; a[10]=“hello”;//一个字符怎么能容纳一个字符串?况且a[10]也是不存在的! 这点是核心:char a[10]; a[10]=“hello”,表达是"hello"赋值给a[10](1个字符怎么能容纳一个字符串?),而不是a[10]整个数组。 2、char a[10]; a=“hello”;//这种情况容易出现,a虽然是指针,但是它已经指向在堆栈中分配的10个字符空间,现在这个情况a又指向数据区中的hello常量,这里的指针a出现混乱,不允许! main() { char s[30]; strcpy(s, “Good News!”); /给数组赋字符串/ . } 上面程序在编译时, 遇到char s[30]这条语句时, 编译程序会在内存的某处留出连续30个字节的区域, 并将第一个字节的地址赋给s。当遇到strcpy( strcpy 为Turbo C2.0的函数)时, 首先在目标文件的某处建立一个"Good News!/0" 的字符串。其中/0表示字符串终止, 终止符是编译时自动加上的, 然后一个字符一个字符地复制到s所指的内存区域。因此定义字符串数组时, 其元素个数至少应该比字符串的长度多1。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有