char *s char s[] 区别

2024-12-26 15:49:51
推荐回答(5个)
回答1:

char *s、char s[]区别为:内容修改不同、计算操作不同、指针性质不同。

一、内容修改不同

1、char *s:char *s因为指向常量,所以内容不能修改。

2、char s[]:char s[]因为指代内存中的变量区,所以内容能修改。

二、计算操作不同

1、char *s:char *s是一个指针类型,可以进行计算操作。

2、char s[]:char s[]不是一个声明的指针类型,不能进行正常指针的加减计算操作。

三、指针性质不同

1、char *s:char *s是一个字符指针。

2、char s[]:char s[]是一个字符数组指针。

回答2:

char *s中的s是指针,而指针是指向一块内存区域,它指向的内存区域的大小可以随时改变,而且当指针指向常量字符串时,它的内容是不可以被修改的,否则在运行时会报错。
char s[]中的s是数组首地址,而数组首地址对应着一块内存区域,其地址和容量在生命期里不会改变,只有数组的内容可以改变。

回答3:

首先你的程序要包含头文件,因为你在程序中使用了库函数GETS()和PUTS(),其次,就是你提到的指针S初始化问题,GETS(S)是从键盘输入一个字符串赋给指针变量S所指向的变量(这个变量的地址就是指针S的值)~~你此处并未给指针变量S赋值,所以程序无法执行。

回答4:

首先我们知道一点,*代表取值符。
其次,我们要明白一点,以为*p可指向以为数组,**p指向二维数组,***p指向三维数组......
最后()在不同的情况下有不同的含义。好现在开始讲解*char(**)与(char*)的区别
1、*char(**)应该表示一个指向二维数组的指针,其效果等同于一个三维数指针
2、(char*)我给出以下两种含义:
a、可定义一个字符型指针
b、将当前对象显示转换为字符指针类型
PS:希望对楼主有帮助。如有必要,希望楼主讲问题描述清楚,多放点代码进来,让我们知道这两句代码是在什么情况下的,因为往往不同环境下,相同代码有不同的含义。

回答5:

一般的 指针char *a和 字符型数组char a[]完全没差别

char不同 指针指向的是char型的 但是++a后就是指向另一个char型数据了