关闭

各种类型的初始化操作

标签: 编译器
169人阅读 评论(0) 收藏 举报
分类:

1、字符串不能直接赋值给变量,只能通过拷贝的形式。
   strcpy这个函数会自己添加末尾0,所以拷贝需要预留的空间

2、用字符对字符数组进行初始化:
   产生的数组不会有结束符'/0',但数据量很大的时候,这种方法很繁重
   char rat[5]={'H','E','L','L','O'};

3、用字符串常量对字符数组进行初始化:
   这时字符数组当做字符串看待,产生的数组是需要添加'/0'
   char panic[6]={"HELLO");
   char panic[]="HELLO";
 和char panic[6]={'H','E','L','L','O'};等价。
   这个时候,字符数组的长度是6,但是字符串的长度仅仅是5,不计算'/0'

   比如:char arr[]="Hello World!";
   这种初始化方法不用担心数组大小过小的情况,数组的大小由编译器决定。

   或者 char panic[6] = {'h','e','l','l','o','/0'};和 char panic[] = "hello",是一样的,但是要麻烦。' '表示空格,ASCII为32,'/0',ASCII为0
   char *p = "hello";p可以自增,自减,数组名不能自增自减。 而且p所指的内存是常量区,不能改变。

4、char arr[10] = 'HI'
   如果用printf()打印,遇到第一个

5、如果可以用结构体,就不要申请内存,使用指针申请内存比较麻烦
6、可以用宏来定义字符串,进行拷贝,测量等等操作
7、结构体使用之前,最好清零。注意双重指针,强转的用法。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2787次
    • 积分:79
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档