注册 登录
编程论坛 数据结构与算法

指针和字符数组赋值问题

ran5515 发布于 2012-04-15 21:22, 663 次点击
#include<stdio.h>
#include <string.h>
int main(){
    char *str;//1
    str="god";//1
    printf(str);
    putchar('\n');
   
    char str1[10]="goshk";//char str1[10];str1="goshk";这样为什么不可以?
    printf(str1);
    //int *p;
    //*p=2;这两句是不行的,可是对比1,为什么1处可以?不都是指针赋值么,字符串怎么就这么特殊呢?
    return 0;
}想问的已标出。
4 回复
#2
寒风中的细雨2012-04-16 10:22
char *str;
char str1[10];

1)知道要明白常量和变量是怎么回事
2)分清str 和 str1 是常量还是变量
3)明白常字符串编译器是怎么存放的
4)知道什么是初始化  什么是赋值动作
#3
dingzy20102012-04-16 12:40
回复 2楼 寒风中的细雨
求版主具体分析一下。谢谢啊
#4
dingzy20102012-04-16 13:03
数组名str1是一个地址常量,不能再赋值,只能初始化;指针str是一个变量可以用来赋值的。。。。我这样理解的
#5
ran55152012-04-16 17:32
数组名str1是一个地址常量,不能再赋值,只能初始化;指针str是一个变量可以用来赋值的;楼上一针见血。谢谢
也谢谢版主!!

1