C语言。有以下定义和语句 char str[20]=”Program”,*p; p=str; 则以

供稿:hz-xin.com     日期:2025-01-14
设有以下定义和语句 char str[20]=”Program”,*p; p=str;.....

A是对的
上面的表达式可改成
char
str[20]="Program";
char
*p;
p=str;
str是数组
str指向数组的入口,也就是第一元素str[0]指针,只是这个数组有20个元素
p是一个指针,p=str也就是p指向数组的入口,也就是数组第一个元素。
*p就是取出数组第一个元素,就是str[0].
因为他们的类型不对所以B不对。
p=str
p本身就是指向str只不过它到\0就结束了
也就是Program
在加一个结束符号。
而str有20个元素
C不对
至于D嘛
他们本身
的类型都不一样,存放的内容怎么可能相同。
D不对

char str[20]="Program",实际上是申请了20个char的空间并将str指向这组空间的首地址,p=str;就是令p也指向这组空间的首地址, 所以*P和str[0]都表示第一个元素 ‘P',str[0]就是首元素啊,不是首地址

B中,二者类型不同。
str是数组,类型是char [20]
p是指针,类型是char *。
最大的区别就是p可以被赋值,可以自加自减。而str值不可更改。
另外,sizeof str的结果是20, 而sizeof p结果为系统位数,比如32位下该值为4, 64位下该值为8.

char
*定义一个指向字符的指针。那么str就是一个指向字符的指针。而char
*
p又定义了一个指针。这个指针也要指向str指向的字符,所以把p=str了就行了。就像
int
a=0;int
b=a同理的。

一个是被分配了空间的字符串数组,一个只是指针,p只是指向首地址,随时都可能会改变。

类型不一样,一个是指针,一个是char型变量

哦G8哦G8哦破椅子7to1哦T1了手机8你提

c语言: 、设有以下定义:int a=0;double b=1.25;char c=’A’;#de
A.a++正确 注意:++是整形变量(int)或者指针变量(*p)专用的运算符,其它类型变量不可用 要想表达相关的可以这么写(有’+‘、’-‘和数字或对应类型的变量、常量)c=c+1、c=c+'B'-'b'有#define d 2 则d是个常量,d++;为变量运算,形式错误 ...

1,若有以下定义,char a;int b;float c;double d;则表示式a*b+d-c值...
若有:char a; int b;float c,double d;则a*b+d-c值的型别是什么啊? double,c运算会使用两个运算元中占用记忆体较大的。若有以下定义和语句,则值为12的表示式是( )。 A a=b+1; B c=10+2; C d=5; D q=10; 答案应选择 B 若定义了int a;char b;float c;,则表示...

若有如下定义char a[30],b[30],则以下正确的输入语句是()
若有如下定义char a[30],b[30],则以下正确的输入语句是()A.gets(a,b);B.gets(a); gets(b);C.scanf("%s",a,b);D.scanf("%s%s"&a,&b);正确答案:B

设有如下定义语句char *p=”12345”;,则错误的表达式是
C、p++++是错误的,后缀++不是左值,不能再自加。关于char还有一个特殊的语言就是char *,它在C\/C++中有专门的语义,既不同于signed char *,也不同于unsigned char *,专门用于指以'\\0'为结束的字符串。

如有以下定义语句: char s[40]则字符串S的长度?
在C语言中,要判断字符数组中字符串的长度。简便的方法是使用库函数strlen(s ),使用这个函数需要包含头文件string.h

C语言中char的用法
C语言中char用于定义字符类型变量或字符指针变量,例如“char a;”则定义了变量a是字符类型,“char *a;”则定义了变量a是字符指针类型。char是C语言整型数据中比较古怪的一个,其它的如int\/long\/short等不指定signed\/unsigned时都默认是signed,但char在标准中不指定为signed\/unsigned,编译器可以实现为...

在C语言中,若有下列定义:char a[]=”123456”;
经过赋值,实际上通过编译程序生成的数组a[7]={ '1','2','3','4','5','6',0 }; b[6]={ '1','2','3','4','5','6' };因为双引号引起来的字符串默认最后多一个字符串结束符0 所以A不对 B也不对 C也不对,因为b数组中没有字符串结尾标志的0,b中存放的是不合格的字符...

若有以下定义 char s='\\092'; 则该语句( ) A)使s的值包含一个字符 B...
选择b 定义不合法,s的值无法确定

C语言:有定义语句char a;int b;float c;double d;
按照转换规则,就要先char转换为doubl型(因为double级别比char高),int 型转为double型 ,float型转为double型, 即全部转为 double型 再进行运算。 所以,最后的数据类型是double型 。【注意】不能理解为:先将char转换成int,再转换成floatd,再转换成double。希望对您有所帮助!

设有如下定义:char ch='z',则执行下面语句后变量ch是值为:()。 ch=...
选择a 'z'不在'A'<=ch&&ch<='Z'范围中,故ch=ch='z'