指针和字符串,数组和字符串(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“ 特点:这个字符串是一个常量字符串,里面的字符是不能更改的。 使用场合: 字符串的内容不需要修改,且经常使用。频繁的开辟内存会消耗资源,而这种不需要新开辟空间。 */