指针和字符串,数组和字符串(1)

 

 

//指针和数组之间的关系 
#include <stdio.h>
int main(int argc, char *argv[])
{
    char name[]="it";//重要 
    name[0]='T';//字符串变量。放在栈里面,可以随便改 
    printf("%s\n", name);//这个时候输出Tt。改变了首字符 
     
    // "it"= 'i' + 't' + '\0' 等于三个字符组成     
    
    char *name2= "it";//指向了首字符 i。而不是指向整个字符串,因为char类型是字符 
     //而如果 想要实现    name[0]='T';,可以修改为
     // *name2 = ‘T’,这种方式是不对,不可更改指针 。这个是字符串常亮不能改 
 
     //要想输出整个数组:
     printf("%s\n", name2); //%s会从name2开始一个字符一个字符输出直到遇到\n 
     
    return 0;
}
/*
内存分五块
1. 常量区:常用字符串 
2. 堆:对象 。 
3. 栈 :存放局部变量 。 函数内部存放的变量 
    所以随便改: 
    
    如果用数组存储字符,数组里面
    的字符是可以更改的,如果用指针间接操作字符,里面的字符是不能更改的 
    掌握:
    1. 定义字符串的两种方式
        a 利用数组:char name【】= ”it“;
            特点:字符串里面的字符串可以更改
            适用场合:字符串的内容需要经常修改 
        b。 利用指针: *name2【】= ”it“
            特点:这个字符串是一个常量字符串,里面的字符是不能更改的。
            使用场合: 字符串的内容不需要修改,且经常使用。频繁的开辟内存会消耗资源,而这种不需要新开辟空间。
             
*/             

 

posted @ 2015-03-09 16:38  稳稳稳稳稳稳  阅读(226)  评论(0编辑  收藏  举报