回 帖 发 新 帖 刷新版面

主题:[讨论]指针和数组赋值问题

#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;
}想问的已标出。

回复列表 (共1个回复)

沙发

char str1[10]="goshk"; 和 char str1[10]; str1="goshk"; 并不等价
前者意思是将"goshk"放置进str1[],后者意图将str1指向"goshk"

int *p; *p=2;这两句是不行的,可是对比1,为什么1处可以?
和1处对比根本就不相同吧?!1处是 p=?,你这里是 *p=?

我来回复

您尚未登录,请登录后再回复。点此登录或注册